/* Copyright (C) 2002 Free Software Foundation. Test for correctness of floating point comparisons. Written by Roger Sayle, 3rd June 2002. */ /* { dg-do run } */ /* { dg-options "-O2 -ffast-math" } */ extern void abort (void); int test1 (double x, int ok) { if ((x - 1.0) > 0.0) { if (!ok) abort (); } else if (ok) abort (); } int test1f (float x, int ok) { if ((x - 1.0f) > 0.0f) { if (!ok) abort (); } else if (ok) abort (); } int test2 (double x, int ok) { if ((x + 1.0) < 0.0) { if (!ok) abort (); } else if (ok) abort (); } int test2f (float x, int ok) { if ((x + 1.0f) < 0.0f) { if (!ok) abort (); } else if (ok) abort (); } int main () { test1 (-2.0, 0); test1 ( 0.0, 0); test1 ( 2.0, 1); test1f (-2.0f, 0); test1f ( 0.0f, 0); test1f ( 2.0f, 1); test2 (-2.0, 1); test2 ( 0.0, 0); test2 ( 2.0, 0); test2f (-2.0f, 1); test2f ( 0.0f, 0); test2f ( 2.0f, 0); return 0; }