仅VS2002及以上才支持SSE指令函数库
目前市面上的大多数CPU(Intel、AMD)均支持SSE指令集
使用SSE指令函数需要包含以下头文件
#include <xmmintrin.h>
SSE指令的细节这里不详细说明,这里只说一说批量计算功能
但这个批量也仅仅是一次处理4个32位符点数,或者其它,它的一次数据传送量为128位,即16字节。
所以在处理大量数组的情况下SSE指令集就比普通汇编指令有着明显的优势。
在xmmintrin.h头文件里包含一些函数:
主要有加、减、剩、除、开方、倒数、最大最小等等算术函数,与、或、非等逻辑函数,
以及各种比较函数和转换函数,具体请看看该头文件。
SSE指令运算寄存变量是 __m128 ,这个在xmmintrin.h有定义。
例如DX中常用的D3DXVec3Cross函数我们可以改写一样(这里不考虑效率,仅供学习SSE指令)
DX的D3DXVec3Cross函数如下:
我们用SSE指令改写如下(需要CPU支持SSE):
_mm_set_ps 初始化一个__m128变量
_mm_mul_ps 计算两个值的乘法,结果传回到次变量中
_mm_sub_ps 减法
其实就这么简单,其它常用的有
_mm_div_ss 除法
_mm_sqrt_ss 开方
....等等其它