[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