جمع 2 آرایه با sse - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

جمع 2 آرایه با sse

+1 امتیاز

سلام. من 2 تا آرایه دارم که مضربی از 8 نیست قصد دارم این 2 آرایه را با sse با هم جمع کنم میشه راهنمائیم کنید.

جمع معمولی به صورت زیر نوشتم جمع تو sse به چه صورته؟

int a[20];
  int b[20];
  int c[20];

  for (int i=0; i < 20;i++)
	  c[i] = a[i] + b[i];

 

تشکر فراروان.

سوال شده آذر 22, 1392 بوسیله ی <<meysam>> (امتیاز 46)  

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
#include <tmmintrin>

const int n = 20;
int a[n];
int b[n];
int c[n];
__m128i* xa = (__m128i*)a;
__m128i* xb = (__m128i*)a;
__m128i* xc = (__m128i*)c;
for (int i = 0; i < n/4; i++)
	_mm_storeu_si128(xc+i, _mm_add_epi32(_mm_loadu_si128(xa+i), _mm_loadu_si128(xb+i)));
//         MOVDQU               PADDD           MOVDQU               MOVDQU

 

پاسخ داده شده آذر 24, 1392  بوسیله ی asdfgh qwerty (امتیاز 100)   2
انتخاب شد فروردین 2, 1393 بوسیله ی <<meysam>>
میشه یک مقدار توضیح بدهی این دستورات چیکار می کنن چرا n/4 کردی؟
...