/* { dg-do run } */ /* { dg-options "-O2 -msse -fipa-ra" } */ typedef double v2df __attribute__((vector_size (16))); static v2df __attribute__((noinline)) bar (v2df a) { return a + (v2df){ 3.0, 3.0 }; } v2df __attribute__((noinline)) foo (v2df y) { return y + bar (y); } int main (void) { int success; union { v2df v; double d[2]; } u; u.v = foo ((v2df){ 5.0, 5.0}); success = (u.d[0] == 13.0 && u.d[1] == 13.0); return !success; }