blob: 850596bd1803a83fb663d08d7ce7a48c1f17bae0 [file] [log] [blame]
/* { dg-do run } */
/* { dg-options "-O2" } */
void abort (void) __attribute__ ((noreturn));
float __attribute__((noinline))
f(float a, int b)
{
return a - (((float)b / 0x7fffffff) * 100);
}
int
main (void)
{
float a[] = { 100.0, 0.0, 0.0};
int b[] = { 0x7fffffff, 0x7fffffff/100.0f, -0x7fffffff / 100.0f};
float c[] = { 0.0, -1.0, 1.0 };
int i;
for (i = 0; i < (sizeof(a) / sizeof (float)); i++)
if (f (a[i], b[i]) != c[i])
abort ();
return 0;
}