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 ilp32 } */
6/* { dg-require-effective-target sse } */
7/* { dg-final { scan-assembler "movss" } } */
8/* { dg-final { scan-assembler "mulss" } } */
9/* { dg-final { scan-assembler-not "movsd" } } */
10/* { dg-final { scan-assembler-not "mulsd" } } */
11/* { dg-skip-if "" { i?86-*-* x86_64-*-* } { "-march=*" } { "-march=i386" } } */
12/* { dg-options "-O2 -march=i386 -msse -mfpmath=sse -fno-inline" } */
13
14static float xs (void)
15{
16  return 3.14159265;
17}
18
19float ys (float a)
20{
21  return xs () * a;
22}
23
24static double xd (void)
25{
26  return 3.1415926535;
27}
28
29double yd (double a)
30{
31  return xd () * a;
32}
33