| /* { dg-do compile } */ | |
| /* { dg-options "-O1 -msse2" } */ | |
| #include <x86intrin.h> | |
| 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 } } */ |