我想使用AVX内在,如:__ m256 factor_min = _mm256_set1_ps(1.329227);但是我收到了以下编译错误:
Always_inline函数'_mm256_set1_ps'需要目标特征'xsave',但会被内联到函数'AveragePooling'中,该函数在不支持'xsave'的情况下编译
我的环境是:MacOs + Intel Core i7 + xcode8.3 我见过关于'xsave'的其他讨论。但是仍然不知道如何解决这个编译错误。我对汇编指令一无所知。有什么简单的方法可以修复此错误(可能只是更改xode设置?)?非常感谢。
我认为英特尔酷睿i7可以完全支持AVX。
只是一个更新 - 我的Mac只显示了来自sysctl的AVX1.0,但在XCode 10.3中,我能够搜索矢量的目标设置,并在“启用其他矢量扩展”下选择AVX 2,根据英特尔这些Macs DO支持 - 它有效。 :)
Update2:由于Clang的怪癖,并非所有AVX 2都启用了,所以为了获得FMA支持,我不得不进入Build Phases-> Compile Sources并添加标志-mfma。然后我得到了编译的fma指令。请注意,似乎必须为每个源文件执行此过程。