/* { dg-options "-O0" } */ /* Decimal float versions of __builtin_signbit. */ #include "dfp-dbg.h" #define CHECK32(D,I) \ if ((__builtin_signbitd32 (D) != 0) != I) FAILURE #define CHECK64(D,I) \ if ((__builtin_signbitd64 (D) != 0) != I) FAILURE #define CHECK128(D,I) \ if ((__builtin_signbitd128 (D) != 0) != I) FAILURE /* Prevent the compiler from folding the calls at compile time. */ volatile _Decimal32 sd; volatile _Decimal64 dd; volatile _Decimal128 td; int main () { sd = 1.9df; CHECK32 (sd, 0) sd = -5.3df; CHECK32 (sd, 1) sd = 0.0df; CHECK32 (sd, 0) sd = -0.0df; CHECK32 (sd, 1) dd = 1.9dd; CHECK64 (dd, 0) dd = -5.3dd; CHECK64 (dd, 1) dd = 0.0dd; CHECK64 (dd, 0) dd = -0.0dd; CHECK64 (dd, 1) td = 1.9dl; CHECK128 (td, 0) td = -5.3dl; CHECK128 (td, 1) td = 0.0dl; CHECK128 (td, 0) td = -0.0dl; CHECK128 (td, 1) FINISH }