TEST_f_b (isnan, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_b (isnan, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_b (isnan, 10, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_b (isnan, 4294967297, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
+ TEST_f_b (isnan, -4294967297, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_b (isnan, min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_b (isnan, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_f_b (isnan, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
int __isnanl(long double x)
{
- int32_t se,hx,lx,pn;
+ int se;
+ unsigned int hx,lx,pn;
GET_LDOUBLE_WORDS(se,hx,lx,x);
se = (se & 0x7fff) << 1;
/* Detect pseudo-normal numbers, i.e. exponent is non-zero and the top
bit of the significand is not set. */
- pn = (uint32_t)((~hx & 0x80000000) & (se|(-se)))>>31;
+ pn = ((~hx & 0x80000000) & (se|(-se)))>>31;
/* Clear the significand bit when computing mantissa. */
lx |= hx & 0x7fffffff;
se |= (uint32_t)(lx|(-lx))>>31;