Fix Wundef warning for __STDC_VERSION__
[glibc.git] / sysdeps / ieee754 / ldbl-128ibm / s_isinf_nsl.c
blob54e72c9166b8e2d9355a91b0f11b106e26a2cbf1
1 /*
2 * __isinf_nsl(x) returns != 0 if x is ±inf, else 0;
3 * no branching!
4 * slightly dodgy in relying on signed shift right copying sign bit
5 */
7 #include <math.h>
8 #include <math_private.h>
10 int
11 __isinf_nsl (long double x)
13 double xhi;
14 int64_t hx, mask;
16 xhi = ldbl_high (x);
17 EXTRACT_WORDS64 (hx, xhi);
19 mask = (hx & 0x7fffffffffffffffLL) ^ 0x7ff0000000000000LL;
20 mask |= -mask;
21 mask >>= 63;
22 return ~mask;