int __isnand128 (_Decimal128 x) { uint64_t hx; GET_DEC128_HIGH_WORD64 (hx, x); /* 0 11111 10 ... == sNaN */ return (hx & DEC128_NAN_MASK64) == DEC128_NAN_MASK64; }
int __isinfd128 (_Decimal128 x) { uint64_t hx; GET_DEC128_HIGH_WORD64 (hx, x); /* 0 1111000 ... == sINF */ return ((hx & DEC128_NAN_MASK64) == DEC128_INF_MASK64) ? ((hx & UINT64_C(0x8000000000000000)) ? -1 : 1) : 0; }