blob: a6e7829d968fd55bd639f228bd3076961f3ed405 [file] [log] [blame]
/* APPLE LOCAL file 420513 */
/* { dg-do compile { target i?86-*-* } } */
/* { dg-require-effective-target ilp32 } */
/* { dg-options "-O2" } */
/* Look for both entry points to the regparmandstackparm function. */
/* { dg-final { scan-assembler "_?munge_fast:" } } */
/* { dg-final { scan-assembler "_?munge_fast\\\$3SSE:" } } */
/* All calls to this function should use the fast version. */
/* { dg-final { scan-assembler-not "^\tcall\[ \]*_?munge_fast\[^$\]" } } */
/* { dg-final { scan-assembler "call\[ \]*_?munge_fast\\\$3SSE" } } */
/* { dg-final { scan-assembler-not "munge_regular\\\$3SSE" } } */
#include <stdlib.h>
#define RANDSP __attribute__ ((regparmandstackparm, noinline))
double RANDSP
munge_fast (double a, double b)
{
return a + b;
}
double
munge_regular (double a, double b)
{
return a + b;
}
double v1 = 31, v2 = 11;
int
main ()
{
double c_fast, c_regular, difference;
c_fast = munge_fast (v1, v2);
c_regular = munge_regular (v1, v2);
difference = abs (c_fast - 42.0);
if (difference > 1e-50)
abort();
difference = abs (c_fast - c_regular);
if (difference > 1e-50)
abort();
return 0;
}