SSE基本四则运算例子

#include<iostream>
#include<emmintrin.h>
#include<smmintrin.h>
using namespace std;


int main()
{
__m128i xx1 = _mm_setr_epi32(1, 2, 3, 5);
__m128i xx2 = _mm_setr_epi32(11, 12, 13, 15);


__m128i add;
add = _mm_add_epi32(xx1, xx2);
int add_out[4];
_mm_storeu_si128((__m128i*)add_out, add);
for (int i = 0; i < 4; i++)
cout << "add out: "<< add_out[i] << endl;//加法例子 SSE2


__m128i sub;
sub = _mm_sub_epi32(xx1, xx2);
int sub_out[4];
_mm_storeu_si128((__m128i*)sub_out, sub);
for (int i = 0; i < 4; i++)
cout << "sub out: " << sub_out[i] << endl;//减法例子 SSE2


__m128i mul;
mul = _mm_mullo_epi32(xx1, xx2);
int mul_out[4];
_mm_storeu_si128((__m128i*)mul_out, mul);
for (int i = 0; i < 4; i++)
cout << "mul out: " << mul_out[i] << endl;//乘法例子 SSE4


__m128i left_shift;
left_shift = _mm_slli_epi32(xx2, 1);
int left_shift_out[4];
_mm_storeu_si128((__m128i*)left_shift_out, left_shift);
for (int i = 0; i < 4; i++)
cout << "left shift out: " << left_shift_out[i] << endl;//左移例子 SSE2


__m128i right_shift;
right_shift = _mm_srai_epi32(xx2, 1);
int right_shift_out[4];
_mm_storeu_si128((__m128i*)right_shift_out, right_shift);
for (int i = 0; i < 4; i++)
cout << "right shift out: " << right_shift_out[i] << endl;//右移例子 SSE2


system("pause");
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值