/* PR tree-optimization/85331 */ | |
/* { dg-require-effective-target double64plus } */ | |
typedef double V __attribute__((vector_size (2 * sizeof (double)))); | |
typedef long long W __attribute__((vector_size (2 * sizeof (long long)))); | |
__attribute__((noipa)) void | |
foo (V *r) | |
{ | |
V y = { 1.0, 2.0 }; | |
W m = { 10000000001LL, 0LL }; | |
*r = __builtin_shuffle (y, m); | |
} | |
int | |
main () | |
{ | |
V r; | |
foo (&r); | |
if (r[0] != 2.0 || r[1] != 1.0) | |
__builtin_abort (); | |
return 0; | |
} |