From: Adhemerval Zanella Date: Fri, 23 Jan 2026 13:02:15 +0000 (-0300) Subject: x86: Add __issignalingl inline X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b9fc08c0a9fe447502dd99a8fa9c4cf377c19b63;p=thirdparty%2Fglibc.git x86: Add __issignalingl inline Checked on x86_64-linux-gnu. Reviewed-by: Wilco Dijkstra --- diff --git a/include/math.h b/include/math.h index b197333e95..b715540018 100644 --- a/include/math.h +++ b/include/math.h @@ -120,6 +120,9 @@ __issignaling (double x) > UINT64_C (0xfff0000000000000); } +/* Get any long double optimization. */ +#include + # if __HAVE_DISTINCT_FLOAT128 # ifdef __USE_EXTERN_INLINES diff --git a/sysdeps/x86_64/fpu/math_ldbl.h b/sysdeps/x86_64/fpu/math_ldbl.h index aa9c89a1e1..e63a338263 100644 --- a/sysdeps/x86_64/fpu/math_ldbl.h +++ b/sysdeps/x86_64/fpu/math_ldbl.h @@ -97,4 +97,16 @@ do { \ (d) = se_u.value; \ } while (0) +extern inline int +__issignalingl (long double x) +{ + uint32_t exi, hxi, lxi; + GET_LDOUBLE_WORDS (exi, hxi, lxi, x); + + int ret = ((exi & 0x7fff) && ((hxi & 0x80000000) == 0)); + hxi ^= 0x40000000; + hxi |= (lxi | -lxi) >> 31; + return ret || (((exi & 0x7fff) == 0x7fff) && (hxi > 0xc0000000)); +} + #endif /* math_ldbl.h */