关于CPU的SSE指令集C++代码

仅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 开方

....等等其它

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值