/* { dg-do run } */ /* { dg-require-effective-target dfp } */ /* { dg-additional-options "-fsignaling-nans" } */ int f1 (void) { return __builtin_issignaling (__builtin_nansd32 ("")); } int f2 (void) { return __builtin_issignaling (__builtin_nand64 ("")); } int f3 (void) { return __builtin_issignaling (0.0DD); } int f4 (_Decimal32 x) { return __builtin_issignaling (x); } int f5 (_Decimal64 x) { return __builtin_issignaling (x); } int f6 (_Decimal128 x) { return __builtin_issignaling (x); } _Decimal32 x; _Decimal64 y; _Decimal128 z; int main () { if (!f1 () || f2 () || f3 ()) __builtin_abort (); asm volatile ("" : : : "memory"); if (f4 (x) || !f4 (__builtin_nansd32 ("0x123")) || f4 (42.0DF) || f4 (__builtin_nand32 ("0x234")) || f4 (__builtin_infd32 ()) || f4 (-__builtin_infd32 ()) || f4 (-42.0DF) || f4 (-0.0DF) || f4 (0.0DF)) __builtin_abort (); x = __builtin_nansd32 (""); asm volatile ("" : : : "memory"); if (!f4 (x)) __builtin_abort (); if (f5 (y) || !f5 (__builtin_nansd64 ("0x123")) || f5 (42.0DD) || f5 (__builtin_nand64 ("0x234")) || f5 (__builtin_infd64 ()) || f5 (-__builtin_infd64 ()) || f5 (-42.0DD) || f5 (-0.0DD) || f5 (0.0DD)) __builtin_abort (); y = __builtin_nansd64 (""); asm volatile ("" : : : "memory"); if (!f5 (y)) __builtin_abort (); if (f6 (z) || !f6 (__builtin_nansd128 ("0x123")) || f6 (42.0DL) || f6 (__builtin_nand128 ("0x234")) || f6 (__builtin_infd128 ()) || f6 (-__builtin_infd128 ()) || f6 (-42.0DL) || f6 (-0.0DL) || f6 (0.0DL)) __builtin_abort (); z = __builtin_nansd128 (""); asm volatile ("" : : : "memory"); if (!f6 (z)) __builtin_abort (); return 0; }