1 /* { dg-do compile } */
2 /* { dg-options "-O1 -msse2" } */
3 
4 #include <x86intrin.h>
5 
6 void
f(double * r,__m128d x,__m128d y,__m128d z)7 f (double *r, __m128d x, __m128d y, __m128d z)
8 {
9   __m128d t=_mm_move_sd(x,y);
10   __m128d u=_mm_move_sd(t,z);
11   *r = u[0];
12 }
13 
14 __m128d
g(__m128d x,__m128d y,__m128d z)15 g(__m128d x, __m128d y, __m128d z)
16 {
17   __m128d t=_mm_move_sd(x,y);
18   __m128d u=_mm_move_sd(t,z);
19   return u;
20 }
21 
22 /* { dg-final { scan-assembler-times "movsd" 1 } } */
23