/* { 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 } } */ |