[PATCH v2 02/13] x86: Add __issignalingl inline
Adhemerval Zanella
adhemerval.zanella@linaro.org
Fri Jan 23 13:02:15 GMT 2026
Checked on x86_64-linux-gnu.
---
include/math.h | 3 +++
sysdeps/x86_64/fpu/math_ldbl.h | 12 ++++++++++++
2 files changed, 15 insertions(+)
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 <math_ldbl.h>
+
# 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 */
--
2.43.0
More information about the Libc-alpha
mailing list