1 /* { dg-do run { target lp64 } } */
2 /* { dg-options "-O2" } */
3
4 void abort (void);
5
6 typedef struct
7 {
8 double x;
9 } Double;
10
11 Double __attribute__((ms_abi, noinline, noclone))
fn1(Double x1,Double x2,Double x3,Double x4,Double x5)12 fn1 (Double x1, Double x2, Double x3, Double x4, Double x5)
13 {
14 Double v;
15 v.x = x1.x + x2.x + x3.x + x4.x + x5.x;
16 return v;
17 }
main()18 int main ()
19 {
20 Double a, a1, a2, a3, a4, a5;
21 double x1 = 1.1;
22 double x2 = 3.1;
23 double x3 = 4.2;
24 double x4 = 14.2;
25 double x5 = -7.2;
26 double 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