URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
/* Copyright (C) 2003 Free Software Foundation.
|
/* Copyright (C) 2003 Free Software Foundation.
|
|
|
Check that constant folding of mathematical expressions doesn't
|
Check that constant folding of mathematical expressions doesn't
|
break anything.
|
break anything.
|
|
|
Written by Roger Sayle, 3rd August 2003. */
|
Written by Roger Sayle, 3rd August 2003. */
|
|
|
/* { dg-do link } */
|
/* { dg-do link } */
|
/* { dg-options "-O2 -ffast-math" } */
|
/* { dg-options "-O2 -ffast-math" } */
|
|
|
extern void link_error(void);
|
extern void link_error(void);
|
|
|
void test(double x)
|
void test(double x)
|
{
|
{
|
if (x+x != 2.0*x)
|
if (x+x != 2.0*x)
|
link_error ();
|
link_error ();
|
if (x+x != x*2.0)
|
if (x+x != x*2.0)
|
link_error ();
|
link_error ();
|
|
|
if (x+x+x != 3.0*x)
|
if (x+x+x != 3.0*x)
|
link_error ();
|
link_error ();
|
if (x+x+x != x*3.0)
|
if (x+x+x != x*3.0)
|
link_error ();
|
link_error ();
|
|
|
if ((x+x)+x != 3.0*x)
|
if ((x+x)+x != 3.0*x)
|
link_error ();
|
link_error ();
|
if ((x+x)+x != x*3.0)
|
if ((x+x)+x != x*3.0)
|
link_error ();
|
link_error ();
|
|
|
if (x+(x+x) != 3.0*x)
|
if (x+(x+x) != 3.0*x)
|
link_error ();
|
link_error ();
|
if (x+(x+x) != x*3.0)
|
if (x+(x+x) != x*3.0)
|
link_error ();
|
link_error ();
|
|
|
if (x+4.0*x != 5.0*x)
|
if (x+4.0*x != 5.0*x)
|
link_error ();
|
link_error ();
|
if (x+4.0*x != x*5.0)
|
if (x+4.0*x != x*5.0)
|
link_error ();
|
link_error ();
|
if (x+x*4.0 != 5.0*x)
|
if (x+x*4.0 != 5.0*x)
|
link_error ();
|
link_error ();
|
if (x+x*4.0 != x*5.0)
|
if (x+x*4.0 != x*5.0)
|
link_error ();
|
link_error ();
|
if (4.0*x+x != 5.0*x)
|
if (4.0*x+x != 5.0*x)
|
link_error ();
|
link_error ();
|
if (4.0*x+x != x*5.0)
|
if (4.0*x+x != x*5.0)
|
link_error ();
|
link_error ();
|
if (x*4.0+x != 5.0*x)
|
if (x*4.0+x != 5.0*x)
|
link_error ();
|
link_error ();
|
if (x*4.0+x != x*5.0)
|
if (x*4.0+x != x*5.0)
|
link_error ();
|
link_error ();
|
|
|
if (3.0*x + 5.0*x != 8.0*x)
|
if (3.0*x + 5.0*x != 8.0*x)
|
link_error ();
|
link_error ();
|
if (3.0*x + 5.0*x != x*8.0)
|
if (3.0*x + 5.0*x != x*8.0)
|
link_error ();
|
link_error ();
|
if (x*3.0 + 5.0*x != 8.0*x)
|
if (x*3.0 + 5.0*x != 8.0*x)
|
link_error ();
|
link_error ();
|
if (x*3.0 + 5.0*x != x*8.0)
|
if (x*3.0 + 5.0*x != x*8.0)
|
link_error ();
|
link_error ();
|
if (3.0*x + x*5.0 != 8.0*x)
|
if (3.0*x + x*5.0 != 8.0*x)
|
link_error ();
|
link_error ();
|
if (3.0*x + x*5.0 != x*8.0)
|
if (3.0*x + x*5.0 != x*8.0)
|
link_error ();
|
link_error ();
|
if (x*3.0 + x*5.0 != 8.0*x)
|
if (x*3.0 + x*5.0 != 8.0*x)
|
link_error ();
|
link_error ();
|
if (x*3.0 + x*5.0 != x*8.0)
|
if (x*3.0 + x*5.0 != x*8.0)
|
link_error ();
|
link_error ();
|
}
|
}
|
|
|
int main()
|
int main()
|
{
|
{
|
test(2.0);
|
test(2.0);
|
return 0;
|
return 0;
|
}
|
}
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.