1 /* { dg-options "-O0" } */
2 
3 /* Decimal float versions of __builtin_signbit.  */
4 
5 #include "dfp-dbg.h"
6 
7 #define CHECK32(D,I) \
8   if ((__builtin_signbitd32 (D) != 0) != I) FAILURE
9 
10 #define CHECK64(D,I) \
11   if ((__builtin_signbitd64 (D) != 0) != I) FAILURE
12 
13 #define CHECK128(D,I) \
14   if ((__builtin_signbitd128 (D) != 0) != I) FAILURE
15 
16 /* Prevent the compiler from folding the calls at compile time.  */
17 volatile _Decimal32 sd;
18 volatile _Decimal64 dd;
19 volatile _Decimal128 td;
20 
21 int
main()22 main ()
23 {
24   sd = 1.9df;  CHECK32 (sd, 0)
25   sd = -5.3df; CHECK32 (sd, 1)
26   sd = 0.0df;  CHECK32 (sd, 0)
27   sd = -0.0df; CHECK32 (sd, 1)
28 
29   dd = 1.9dd;  CHECK64 (dd, 0)
30   dd = -5.3dd; CHECK64 (dd, 1)
31   dd = 0.0dd;  CHECK64 (dd, 0)
32   dd = -0.0dd; CHECK64 (dd, 1)
33 
34   td = 1.9dl;  CHECK128 (td, 0)
35   td = -5.3dl; CHECK128 (td, 1)
36   td = 0.0dl;  CHECK128 (td, 0)
37   td = -0.0dl; CHECK128 (td, 1)
38 
39   FINISH
40 }
41