VS2010 SP1是否仅支持部分AVX指令集?

Mik*_*ike 3 c++ sse visual-studio-2010 avx fma

微软表示VS2010支持全套AVX指令:

http://blogs.msdn.com/b/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx

...在VS2010版本中,所有AVX功能和指令都通过内在和完全支持/arch:AVX....

但是我找不到任何用于融合乘法运算的内在函数

http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/intref_cls/common/intref_bk_avx_fma.htm#intref_bk_avx_fma

我需要使用_mm256_fmadd_ps函数,但它在"immintrin.h"标题中缺失.我真的很困惑.

Mys*_*ial 5

Fused-Multiply Add内在函数不是AVX的一部分.英特尔在后来的AVX版本中摆脱了它.所以FMA是单独的指令集.

更糟糕的是,将会有两个FMA3(Intel - Haswell),FMA4(AMD - Bulldozer).

VS2010 SP1支持FMA4 - AMD的版本.

两款处理器产品线尚未发布(除了AMD - Interlagos,它是Bulldozer的服务器部分).

英特尔FMA内在函数适用于FMA3.由于没有处理器实现它,您将无法使用/测试它.