blob: f1b9b7e198054e662ff13d3724e3376e99551f70 [file] [log] [blame]
/* Excess precision tests. Test implicit conversions in comparisons:
excess precision in C11 mode. */
/* { dg-do run } */
/* { dg-options "-std=c11 -mfpmath=387 -fexcess-precision=standard" } */
extern void abort (void);
extern void exit (int);
int
main (void)
{
float f = 0x1p63f;
unsigned long long int u = (1ULL << 63) + 1;
if ((f == u) != 0)
abort ();
if ((u == f) != 0)
abort ();
if ((f != u) != 1)
abort ();
if ((u != f) != 1)
abort ();
if ((f < u) != 1)
abort ();
if ((u < f) != 0)
abort ();
if ((f <= u) != 1)
abort ();
if ((u <= f) != 0)
abort ();
if ((f > u) != 0)
abort ();
if ((u > f) != 1)
abort ();
if ((f >= u) != 0)
abort ();
if ((u >= f) != 1)
abort ();
exit (0);
}