OSDN Git Service

* gcc.dg/nodfp-1.c: New test.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / dfp / compare-rel-const.c
1 /* { dg-do run } */
2 /* { dg-options "-std=gnu99" } */
3
4 /* C99 6.5.8 Relational operators.
5    Compare decimal float constants against each other. */
6
7 extern void link_error (void);
8
9 int
10 main ()
11 {
12   /* Compare like-typed negative constants. */
13   if (-2.0dl < -2.0dl)
14     link_error ();
15
16   /* Compare like-typed constants. */
17   if (-2.0dl >= .01dl)
18     link_error ();
19
20   /* Compare like-typed constants. */
21   if (0.2dd > 0.02e1dd)
22     link_error ();
23   
24   /* Compare decimal float constants of different types. */
25   if (-.000005dd >= -.0000049DL)
26   link_error();
27
28   /* Test use gcc builtins for comparisons. */
29   if (__builtin_isless(-2.0dl,-2.0dl))
30     link_error();
31
32   if (__builtin_isgreaterequal(-2.0dl,.01dl))
33     link_error();
34
35   if (!(__builtin_islessequal(-2.0dl, -2.0dd)))
36     link_error();
37
38   if (!(__builtin_isgreater(2.0dl, -2.0dd)))
39     link_error();
40
41   if (__builtin_islessequal(2.0df, __builtin_nand64("")))
42     link_error();
43
44   if (__builtin_islessgreater(2.0dd, __builtin_nand64("")))
45     link_error();
46
47   if (!__builtin_islessgreater(2.0dd, -2.0dd))
48     link_error();
49
50   if (!__builtin_islessgreater(-3.0dd, 2.0dd))
51     link_error();
52
53   if (__builtin_isunordered(1.1df, 0.003dd))
54     link_error();
55
56   if (!__builtin_isunordered(-3.1df, __builtin_nand32("")))
57     link_error();
58
59   return 0;
60 }