PR target/30120
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / x87regparm-3.c
blob8e3ff70dffa0511184494a124cd2eadf3e41c94d
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fomit-frame-pointer" } */
3 /* { dg-require-effective-target ilp32 } */
5 static float __attribute__((noinline)) foo_f(float f) { return f; }
6 static double __attribute__((noinline)) foo_d(double d) { return d; }
7 static long double __attribute__((noinline)) foo_ld(long double ld) { return ld; }
9 volatile float f;
10 volatile double d;
11 volatile long double ld;
13 void test()
15 f = foo_f(f);
16 d = foo_d(d);
17 ld = foo_ld(ld);
20 /* Check that float and double arguments are passed through memory. */
22 /* { dg-final { scan-assembler-times "\\(%esp\\)" 4 { xfail *-*-* } } } */