Minor changes to sysdeps/ieee754/dbl-64/s_fma.c
Stefan Kanthak
stefan.kanthak@nexgo.de
Thu Jul 16 10:36:42 GMT 2026
Hi @ll,
I propose the following minor changes to sysdeps/ieee754/dbl-64/s_fma.c:
1. replace
- if ((u & 0x10000000) == 0
- && ((u >> MANTISSA_WIDTH) & 0x7ff) > EXPONENT_BIAS - 126)
with
+#define DOUBLE_EXPONENT_MASK (DOUBLE_EXPONENT_BIAS * 2 + 1)
+
+ if ((u & (1u << DOUBLE_MANTISSA_WIDTH - FLOAT_MANTISSA_WIDTH - 1)) == 0
+ && ((u >> DOUBLE_MANTISSA_WIDTH) & DOUBLE_EXPONENT_MASK) > DOUBLE_EXPONENT_BIAS - FLOAT_EXPONENT_BIAS)
to better show where 0x10000000, 0x7ff and 126 originate from.
2. correct the spelling of 'double-rouding'
3. replace
-int neg = u >> 63;
with
+int neg = (int64_t) u < 0;
4. replace
- if (neg == (err < 0))
- u++;
- else
- u--;
with
+ u += (neg == (err < 0)) * 2 - 1;
Stefan Kanthak
More information about the Libc-alpha
mailing list