blob: a3c11a45bf46d566fb27940ef42f4c7b25956cdd [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2 -msse2 -fdump-tree-optimized" } */
typedef double __v2df __attribute__ ((__vector_size__ (16)));
typedef long long __v2di __attribute__ ((__vector_size__ (16)));
__v2df
_mm_add_sd_A (__v2df x, __v2df y)
{
double tem = x[0] + y[0];
return __builtin_shuffle ( x, (__v2df) { tem, tem }, (__v2di) { 2, 1 } );
}
__v2df
_mm_add_sd_B (__v2df x, __v2df y)
{
__v2df z = { (x[0] + y[0]), x[1] };
return z;
}
/* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 2 "optimized" } } */
/* { dg-final { scan-assembler-not "unpck" } } */