1/* { dg-do compile } */
2/* { dg-options "-O2 -msse" } */
3/* { dg-require-effective-target ilp32 } */
4/* { dg-require-effective-target sse } */
5
6float essef(float) __attribute__((sseregparm));
7double essed(double) __attribute__((sseregparm));
8float __attribute__((sseregparm, noinline)) ssef(float f) { return f; }
9double __attribute__((sseregparm, noinline)) ssed(double d) { return d; }
10extern double d;
11extern float f;
12void test(void)
13{
14  f = essef(f);
15  d = essed(d);
16  f = ssef(f);
17  d = ssed(d);
18}
19
20/* { dg-final { scan-assembler-not "fldl" } } */
21