1 /* { dg-do compile { target lp64 } } */
2 /* { dg-options "-O2 -masm=att" } */
3 /* { dg-final { scan-assembler-times "movd\[ \t\]*%ecx, .*" 1 } } */
4 /* { dg-final { scan-assembler-times "movd\[ \t\]*%edx, .*" 1 } } */
5 /* { dg-final { scan-assembler-times "movd\[ \t\]*%r8d, .*" 1 } } */
6 /* { dg-final { scan-assembler-times "movd\[ \t\]*%r9d, .*" 1 } } */
7 /* { dg-final { scan-assembler-times "addss\[ \t]*40\\\(%rsp\\\), .*" 1 } } */
8 /* { dg-final { scan-assembler-times "movd\[^\n\r\]*, %eax" 1 } } */
9 
10 typedef struct
11 {
12   float x;
13 } Float;
14 
15 Float  __attribute__((ms_abi))
fn1(Float x1,Float x2,Float x3,Float x4,Float x5)16 fn1 (Float x1, Float x2, Float x3, Float x4, Float x5)
17 {
18   Float v;
19   v.x = x1.x + x2.x + x3.x + x4.x + x5.x;
20   return v;
21 }
22