1 /* { dg-do run } */ 2 /* { dg-options "-O2 -msse -fipa-ra" } */ 3 4 typedef double v2df __attribute__((vector_size (16))); 5 6 static v2df __attribute__((noinline)) bar(v2df a)7bar (v2df a) 8 { 9 return a + (v2df){ 3.0, 3.0 }; 10 } 11 12 v2df __attribute__((noinline)) foo(v2df y)13foo (v2df y) 14 { 15 return y + bar (y); 16 } 17 18 int main(void)19main (void) 20 { 21 int success; 22 union { 23 v2df v; 24 double d[2]; 25 } u; 26 27 u.v = foo ((v2df){ 5.0, 5.0}); 28 success = (u.d[0] == 13.0 29 && u.d[1] == 13.0); 30 31 return !success; 32 } 33