SSE2 如何写 并行运算求和

unsigned char ZhiJieA[64] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64 };

unsigned char ZhiJieC[16] = {};

__m128i  a;
__m128i  b;
__m128i  c;


//加载 128 位值。
 a = _mm_loadu_si128((__m128i*)ZhiJieA);//加载 128 位值。
 b = _mm_loadu_si128((__m128i*)ZhiJieA);//加载 128 位值。

 //相加                                    
 c = _mm_add_epi8(a, b);


  //取出数据

_mm_storeu_si128((__m128i*)(ZhiJieC), c);

本人刚接触 SSE指令 想请教一下 上面的代码是 按顺序 A[0]+A[1]+A[2]以此类推 显然不是我想要的

那么如何实现每间隔4个字节相加一次 比如 A[0]+A[4]+A[8]以此类推 得到最终16次相加的总数

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。