Intel Intrinsics和x86内置函数之间的关系是什么?

时间:2016-02-07 16:26:19

标签: gcc x86 intrinsics

Intel Intrinsics Guide列出了英特尔MMX技术的内在函数,英特尔C / C ++编译器的SSE,SSE2,SSE3和SSSE3指令。 x86 Built-in Functions列出了GCC的内在函数。这两个清单之间有什么关系?

我的猜测是x86 Built-in FunctionsIntel Intrinsics Guide的实现。例如,Intel Intrinsics Guide__m64 _mm_add_pi16 (__m64 a, __m64 b),在x86 Built-in Functions中实现为v4hi __builtin_ia32_paddw (v4hi, v4hi)。所以x86 Built-in Functions似乎选择了一些Intel Intrinsics Guide的内在函数并进行了一些包装,例如重命名。但x86 Built-in Functions并未在Intel Intrinsics Guide中实现所有内在函数。例如,__m64 _mm_shuffle_pi16 (__m64 a, int imm8)的SEE指令为pshufw。但x86 Built-in Functions没有此SSE指令的固有内容。所以x86 Built-in Functions似乎没有实现Intel Intrinsics Guide中的所有内在函数。要使用此类内在函数,我们可以包含Intel Intrinsics Guide的头文件,并使用-msse进行编译(我已经验证了这一点)。

我的理解是否正确?

0 个答案:

没有答案