1 /* { dg-do run { target lp64 } } */
2 /* { dg-options "-O2" } */
3 
4 void abort (void);
5 
6 typedef struct
7 {
8   float x;
9 } Float;
10 
11 Float  __attribute__((ms_abi, noinline, noclone))
fn1(Float x1,Float x2,Float x3,Float x4,Float x5)12 fn1 (Float x1, Float x2, Float x3, Float x4, Float x5)
13 {
14   Float v;
15   v.x = x1.x + x2.x + x3.x + x4.x + x5.x;
16   return v;
17 }
main()18 int main ()
19 {
20   Float a, a1, a2, a3, a4, a5;
21   float x1 = 1.1;
22   float x2 = 3.1;
23   float x3 = 4.2;
24   float x4 = 14.2;
25   float x5 = -7.2;
26   float x = x1 + x2 + x3 + x4 + x5;
27   a1.x = x1;
28   a2.x = x2;
29   a3.x = x3;
30   a4.x = x4;
31   a5.x = x5;
32   a = fn1 (a1, a2, a3, a4, a5);
33   if (a.x == x);
34     return 0;
35   abort ();
36 }
37