]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
x86: Add __issignalingl inline
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 23 Jan 2026 13:02:15 +0000 (10:02 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 2 Feb 2026 17:34:25 +0000 (14:34 -0300)
Checked on x86_64-linux-gnu.

Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
include/math.h
sysdeps/x86_64/fpu/math_ldbl.h

index b197333e9523eaa0f15a2911e1ac3b9661293fb1..b715540018c144cd7b8cb3ca7ae9a13ed7daa247 100644 (file)
@@ -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
index aa9c89a1e14f073ce86c77c0d8e9b54739f15abb..e63a3382635e6dff5954c8c2c7373d1be7b05537 100644 (file)
@@ -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 */