2016-12-21 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / fuse-caller-save-xmm-run.c
blob80578849a7ba08a886e44a61c9e0a4efa6666f77
1 /* { dg-do run } */
2 /* { dg-options "-O2 -msse -fipa-ra" } */
4 typedef double v2df __attribute__((vector_size (16)));
6 static v2df __attribute__((noinline))
7 bar (v2df a)
9 return a + (v2df){ 3.0, 3.0 };
12 v2df __attribute__((noinline))
13 foo (v2df y)
15 return y + bar (y);
18 int
19 main (void)
21 int success;
22 union {
23 v2df v;
24 double d[2];
25 } u;
27 u.v = foo ((v2df){ 5.0, 5.0});
28 success = (u.d[0] == 13.0
29 && u.d[1] == 13.0);
31 return !success;