Intrinsic 基础入门【1】


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

你可能感兴趣的:(Intrinsic 基础入门【1】)