Require target lra in gcc.dg/pr108095.c
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / builtin-issignaling-2.c
blob4209a219e1d8faf2d97c97e500be470731930fc9
1 /* { dg-do run } */
2 /* { dg-require-effective-target dfp } */
3 /* { dg-additional-options "-fsignaling-nans" } */
5 int
6 f1 (void)
8 return __builtin_issignaling (__builtin_nansd32 (""));
11 int
12 f2 (void)
14 return __builtin_issignaling (__builtin_nand64 (""));
17 int
18 f3 (void)
20 return __builtin_issignaling (0.0DD);
23 int
24 f4 (_Decimal32 x)
26 return __builtin_issignaling (x);
29 int
30 f5 (_Decimal64 x)
32 return __builtin_issignaling (x);
35 int
36 f6 (_Decimal128 x)
38 return __builtin_issignaling (x);
41 _Decimal32 x;
42 _Decimal64 y;
43 _Decimal128 z;
45 int
46 main ()
48 if (!f1 () || f2 () || f3 ())
49 __builtin_abort ();
50 asm volatile ("" : : : "memory");
51 if (f4 (x) || !f4 (__builtin_nansd32 ("0x123")) || f4 (42.0DF) || f4 (__builtin_nand32 ("0x234"))
52 || f4 (__builtin_infd32 ()) || f4 (-__builtin_infd32 ()) || f4 (-42.0DF) || f4 (-0.0DF) || f4 (0.0DF))
53 __builtin_abort ();
54 x = __builtin_nansd32 ("");
55 asm volatile ("" : : : "memory");
56 if (!f4 (x))
57 __builtin_abort ();
58 if (f5 (y) || !f5 (__builtin_nansd64 ("0x123")) || f5 (42.0DD) || f5 (__builtin_nand64 ("0x234"))
59 || f5 (__builtin_infd64 ()) || f5 (-__builtin_infd64 ()) || f5 (-42.0DD) || f5 (-0.0DD) || f5 (0.0DD))
60 __builtin_abort ();
61 y = __builtin_nansd64 ("");
62 asm volatile ("" : : : "memory");
63 if (!f5 (y))
64 __builtin_abort ();
65 if (f6 (z) || !f6 (__builtin_nansd128 ("0x123")) || f6 (42.0DL) || f6 (__builtin_nand128 ("0x234"))
66 || f6 (__builtin_infd128 ()) || f6 (-__builtin_infd128 ()) || f6 (-42.0DL) || f6 (-0.0DL) || f6 (0.0DL))
67 __builtin_abort ();
68 z = __builtin_nansd128 ("");
69 asm volatile ("" : : : "memory");
70 if (!f6 (z))
71 __builtin_abort ();
72 return 0;