X-Git-Url: http://nsz.repo.hu/git/?p=libm;a=blobdiff_plain;f=src%2Fmath%2F__fpclassifyl.c;h=a5ad36f2c2196e76a5b0a287b3c759bb298978c7;hp=308dc21af6cf2ba7f82e99a6c18b6daa2c0391cf;hb=f1278a53fcf066facd97c8c782a412b39d0f2bc4;hpb=0591f96c4fada924567b9583a9462dbf0bf62ae2 diff --git a/src/math/__fpclassifyl.c b/src/math/__fpclassifyl.c index 308dc21..a5ad36f 100644 --- a/src/math/__fpclassifyl.c +++ b/src/math/__fpclassifyl.c @@ -1,8 +1,8 @@ #include "libm.h" -#if LD64 +#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 -#elif LD80 +#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 int __fpclassifyl(long double x) { union ldshape u = { x }; @@ -10,10 +10,10 @@ int __fpclassifyl(long double x) if (!e) return u.bits.m ? FP_SUBNORMAL : FP_ZERO; if (e == 0x7fff) - return u.bits.m & ~((uint64_t)1<<63) ? FP_NAN : FP_INFINITE; + return u.bits.m & (uint64_t)-1>>1 ? FP_NAN : FP_INFINITE; return u.bits.m & (uint64_t)1<<63 ? FP_NORMAL : FP_NAN; } -#elif LD128 +#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 int __fpclassifyl(long double x) { union ldshape u = { x };