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)7 bar (v2df a)
8 {
9   return a + (v2df){ 3.0, 3.0 };
10 }
11 
12 v2df __attribute__((noinline))
foo(v2df y)13 foo (v2df y)
14 {
15   return y + bar (y);
16 }
17 
18 int
main(void)19 main (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