/* { dg-do compile } */ /* { dg-options "-O1 -msse2" } */ #include void f (double *r, __m128d x, __m128d y, __m128d z) { __m128d t=_mm_move_sd(x,y); __m128d u=_mm_move_sd(t,z); *r = u[0]; } __m128d g(__m128d x, __m128d y, __m128d z) { __m128d t=_mm_move_sd(x,y); __m128d u=_mm_move_sd(t,z); return u; } /* { dg-final { scan-assembler-times "movsd" 1 } } */