1 /* { dg-do compile } */
2 /* { dg-options "-O2 -msse2 -mfpmath=sse" } */
3 /* { dg-final { scan-assembler-times "addsd" 1 } } */
4 /* { dg-final { scan-assembler-not "movapd" } } */
5 /* { dg-final { scan-assembler-not "movsd" } } */
6 
7 typedef double __v2df __attribute__ ((__vector_size__ (16)));
8 typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
9 
10 __m128d
_mm_add_sd(__m128d x,__m128d y)11 _mm_add_sd (__m128d x, __m128d y)
12 {
13   __m128d z =  __extension__ (__m128d)(__v2df)
14     { (((__v2df) x)[0] + ((__v2df) y)[0]), ((__v2df) x)[1] };
15   return z;
16 }
17