mmintrin.h 头文件中声明的原型支持 Intel MMX 内部函数,是为了实现兼容性而提供的。
特定头文件提供了附加扩展平台内部函数的原型,如下表所示。这些头文件的位置取决于编译器的安装位置。例如,如果编译器位于 /opt/Solarisstudio12.3/bin 中,头文件将在 /opt/Solarisstudio12.3/lib/compilers/include/cc/sys 中。
|
表中每个头文件在其前面都包括了原型。例如,在 SSE4.1 平台上,用户程序中的包含方 smmintrin.h 声明了支持 SSE4.1、SSSE3、SSE3、SSE2、SSE 和 MMX 平台的内部函数名称,因为 smmintrin.h 包含了 tmmintrin.h,而 tmmintrin.h 包含了 pmmintrin.h,并依次向下类推至 mmintrin.h。
请注意,ammintrin.h 是由 AMD 发布的,未包含在任何 Intel 内部函数头文件中。ammintrin.h 包含了 pmmintrin.h,因此,通过将 ammintrin.h 包含在内,就可声明所有 AMD SSE4A 以及 Intel SSE3、SSE2、SSE 和 MMX 函数。
另外,单个 Oracle Solaris Studio 头文件 sunmedia_intrin.h 包含所有 Intel 头文件中的声明,但未包含 AMD 头文件 ammintrin.h。
请注意,在主机平台(例如 SSE3)上部署的调用任何超集内部函数(例如,针对 AVX)的代码不能在 Oracle Solaris 平台上装入,在 Linux 平台上装入可能会失败并产生未定义的行为或不正确的结果。对于调用这些特定于平台的内部函数的程序,请只在支持这些函数的平台上部署这类程序。
这些为系统头文件,应按下例所示显示在程序中:
#include <nmmintrin.h>
有关详细信息,请参阅最新的 Intel C++ 编译器参考指南。