Merge from mainline
[official-gcc.git] / gcc / testsuite / gcc.dg / dfp / compare-rel-const.c
blobd2dda48e6146f340f0c695a458be8b285691d1b4
1 /* { dg-options "-std=gnu99" } */
3 /* C99 6.5.8 Relational operators.
4 Compare decimal float constants against each other. */
6 extern void link_error (void);
8 int
9 main ()
11 /* Compare like-typed negative constants. */
12 if (-2.0dl < -2.0dl)
13 link_error ();
15 /* Compare like-typed constants. */
16 if (-2.0dl >= .01dl)
17 link_error ();
19 /* Compare like-typed constants. */
20 if (0.2dd > 0.02e1dd)
21 link_error ();
23 /* Compare decimal float constants of different types. */
24 if (-.000005dd >= -.0000049DL)
25 link_error();
27 /* Test use gcc builtins for comparisons. */
28 if (__builtin_isless(-2.0dl,-2.0dl))
29 link_error();
31 if (__builtin_isgreaterequal(-2.0dl,.01dl))
32 link_error();
34 if (!(__builtin_islessequal(-2.0dl, -2.0dd)))
35 link_error();
37 if (!(__builtin_isgreater(2.0dl, -2.0dd)))
38 link_error();
40 if (__builtin_islessequal(2.0df, __builtin_nand64("")))
41 link_error();
43 if (__builtin_islessgreater(2.0dd, __builtin_nand64("")))
44 link_error();
46 if (!__builtin_islessgreater(2.0dd, -2.0dd))
47 link_error();
49 if (!__builtin_islessgreater(-3.0dd, 2.0dd))
50 link_error();
52 if (__builtin_isunordered(1.1df, 0.003dd))
53 link_error();
55 if (!__builtin_isunordered(-3.1df, __builtin_nand32("")))
56 link_error();
58 return 0;