Intel 官方网站上的Intrinsic指导:http://software.intel.com/en-us/articles/intel-intrinsics-guide
Microsoft官方网站上关于Intrinsic的介绍:http://msdn.microsoft.com/zh-cn/library/vstudio/tzkfha43(v=vs.100).aspx
各种SIMD指令集所对应的头文件位于:\Microsoft Visual Studio 9.0\VC\include
mmintrin.h MMX
xmmintrin.h SSE
emmintrin.h SSE2
pmmintrin.h SSE3
tmmintrin.h SSSE3
intrin.h SSE4A
smmintrin.h SSE4.1
nmmintrin.h SSE4.2
mm3dnow.h 3DNOW
微软的Visual Studio 2005、2008、2010、2012对 Intrinsic的支持:
http://software.intel.com/en-us/forums/topic/279703
------------------------------------------------------------------------------------------------------------------------------------------------------------
| Header/IDE | VS98 | VS2005 | VS2008 | VS2010 | Notes |
------------------------------------------------------------------------------------------------------------------------------------------------------------
| intrin.h |- | + | + | + | Declarations of platform specific intrinsic functions|
| emmintrin.h |+ | + | + | + | Principal header file |
| mmintrin.h |+ | + | + | + | Definitions and declarations for use with compiler intrinsics |
| xmmintrin.h |+ | + | + | + | Principal header file for SIMD Extensions intrinsics |
| pmmintrin.h | - | - | + | + | Declarations for SSE3 intrinsics |
| smmintrin.h |- | - | + | + | Declarations for SSE4.1 intrinsics |
| nmmintrin.h | - | - | + | + | Declarations for SSE4.2 intrinsics |
| tmmintrin.h | - | - | + | + | Declarations for intrinsic functions ( horizonally packed types ) |
| wmmintrin.h | - | - | + | + | Principal header file for AES and PCLMULQDQ intrinsics |
| immintrin.h | - | - | - | + | Declarations for AVX intrinsics |
小知识:
1. Itanium:
Intel安腾处理器构建在IA-64(Intel Architecture 64),也就是说“IA-64是一个与x86代码的决裂,它是为未来设计的“。Itanium是专门用在高端企业级64-bit计算环境中竞争的,对抗基于IBM Power4/5,HP PA-RISC,Sun UltraSparc-III及DEC Alpha的服务器。64位只是安腾处理器的一个技术特征。所有基于Intel安腾2处理器的系统都支持32Intel架构(IA-32)软件应用,从而用户移植到Intel安腾2架构提供了更高的灵活性。Intel提供了一种名为32位英特尔架构(IA-32)执行层(EL)的技术来支持32位英特尔架构(IA-32)软件应用。
2. visual studio IDE 的版本宏定义
_MSC_VER 定义编译器的版本:
MS VC++ 10.0 _MSC_VER = 1600
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
#if _MSC_VER == 1400 //visual studio 2005
#include <intrin.h>
#else
#include <immintrin.h> // VS2010
#endif