#include #include double x[4] __attribute__ ((aligned (16))) = {1.0, 2.0, 3.0, 4.0}; double y[5] __attribute__ ((aligned (16))) = {1.0, 2.0, 3.0, 4.0}; void foo(void) { __m128d x01 = _mm_load_pd(x); __m128d x23 = _mm_load_pd(x+2); __m128d y01 = _mm_load_pd(y); __m128d y23 = _mm_load_pd(y+2); y01 = _mm_add_pd(x01, y01); y23 = _mm_add_pd(x23, y23); _mm_store_pd(y+1, y01); _mm_store_pd(y+3, y23); } int main() { foo(); printf("y = (%lf, %lf, %lf, %lf)\n", y[0], y[1], y[2], y[3]); }