1 /* Excess precision tests.  Test implicit conversions in comparisons:
2    excess precision in C11 mode.  */
3 /* { dg-do run } */
4 /* { dg-options "-std=c11 -mfpmath=387 -fexcess-precision=standard" } */
5 
6 extern void abort (void);
7 extern void exit (int);
8 
9 int
main(void)10 main (void)
11 {
12   float f = 0x1p63f;
13   unsigned long long int u = (1ULL << 63) + 1;
14 
15   if ((f == u) != 0)
16     abort ();
17 
18   if ((u == f) != 0)
19     abort ();
20 
21   if ((f != u) != 1)
22     abort ();
23 
24   if ((u != f) != 1)
25     abort ();
26 
27   if ((f < u) != 1)
28     abort ();
29 
30   if ((u < f) != 0)
31     abort ();
32 
33   if ((f <= u) != 1)
34     abort ();
35 
36   if ((u <= f) != 0)
37     abort ();
38 
39   if ((f > u) != 0)
40     abort ();
41 
42   if ((u > f) != 1)
43     abort ();
44 
45   if ((f >= u) != 0)
46     abort ();
47 
48   if ((u >= f) != 1)
49     abort ();
50 
51   exit (0);
52 }
53