1 /* Test argument passing with SSE and local functions
2    Written by Paolo Bonzini, 25 January 2005 */
3 
4 /* { dg-do compile } */
5 /* { dg-require-effective-target ia32 } */
6 /* { dg-final { scan-assembler "movss" } } */
7 /* { dg-final { scan-assembler "mulss" } } */
8 /* { dg-final { scan-assembler-not "movsd" } } */
9 /* { dg-final { scan-assembler-not "mulsd" } } */
10 /* { dg-skip-if "" { *-*-* } { "-march=*" } { "-march=i386" } } */
11 /* { dg-options "-O2 -march=i386 -msse -mno-sse2 -mfpmath=sse -fno-inline" } */
12 
xs(void)13 static float xs (void)
14 {
15   return 3.14159265;
16 }
17 
ys(float a)18 float ys (float a)
19 {
20   return xs () * a;
21 }
22 
xd(void)23 static double xd (void)
24 {
25   return 3.1415926535;
26 }
27 
yd(double a)28 double yd (double a)
29 {
30   return xd () * a;
31 }
32