检查了一下VC2012新增的Intrinsics函数集,发现它支持ARM指令和H

检查了一下VC2012新增的Intrinsics函数集,免备案空间,发现它支持ARM指令和Haswell新指令

作者:zyl910

  之前我整理了一份VC6至VC2010中Intrinsics函数集对应表。现在VS2012发布了,它有没有增加Intrinsics函数集呢?于是我对此进行检查。

  若是64位win8系统中默认安装的VS2012,Intrinsics头文件位于“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include”目录。

  首先发现多了两个Intrinsics头文件——armintr.h:ARM的常用指令集。arm_neon.h:ARM的neon指令集。

  看了一下intrin.h,香港虚拟主机,发现以前大段的ARM Intrinsics被移到armintr.h中去了,现在的intrin.h只需引入armintr.h(拥有_M_ARM宏时)。  但是intrin.h并没有引入arm_neon.h。搜索了一下其他头文件,也没有引入arm_neon.h。看来不会自动引入,香港服务器,需要开发者根据情况手动引入arm_neon.h。

  又对比了一下原来就有Intrinsics头文件,发现两个文件增加了新的Intrinsics函数集——immintrin.h:F16C、RDRAND、FSGSBASE、FMA、AVX2、BMI1、BMI2、LZCNT、INVPCID、HLE、RTM。ammintrin.h:BMI1、TBM。

  指令简介——F16C、RDRAND、FSGSBASE:这些是Ivy Bridge架构的新指令。FMA、AVX2、BMI1、BMI2、INVPCID、HLE、RTM:这些是Haswell架构的新指令。LZCNT:AMD的ABM指令集,现在Intel对其支持。以前intrin.h有一个双下划线版的,现在immintrin.h提供单下划线版。TBM:AMD的TBM指令集。

  Haswell架构要到2013年第二季度才发售,VC2012已提前做好准备。

参考文献——《Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes:1, 2A, 2B, 2C, 3A, 3B, and 3C》044US. August 2012. 《Intel® Architecture Instruction Set Extensions Programming Reference》014. AUGUST 2012. 《AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions》. December 2011. 《Intrinsics头文件与SIMD指令集、Visual Studio版本对应表》.

posted on

愈想得到,就愈要放手。放手是很难的,但是别无选择。

检查了一下VC2012新增的Intrinsics函数集,发现它支持ARM指令和H

相关文章:

你感兴趣的文章:

标签云: