glibc/sysdeps/ieee754
Osama Abdelkader e52d9542cd math: Optimize frexpl (binary128) with fast path for normal numbers
Add fast path optimization for frexpl (128-bit IEEE quad precision) using
a single unsigned comparison to identify normal floating-point numbers and
return immediately via arithmetic on the exponent field.

The implementation uses arithmetic operations hx = hx - (ex << 48)
to adjust the exponent in place, which is simpler and more efficient than
bit masking. For subnormals, the traditional multiply-based normalization
is retained for reliability with the split 64-bit word format.

The zero/infinity/NaN check groups these special cases together for better
branch prediction.

This optimization provides the same algorithmic improvements as the other
frexp variants while maintaining correctness for all edge cases.

Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2025-11-10 08:58:19 -03:00
..
dbl-64 math: Optimize frexp (binary64) with fast path for normal numbers 2025-11-10 08:58:18 -03:00
float128 Rename fromfp files in preparation for changing types for C23 2025-11-04 23:41:35 +00:00
flt-32 math: Optimize frexpf (binary32) with fast path for normal numbers 2025-11-10 08:58:18 -03:00
ldbl-64-128 stdio-common: Add scanf long double data for IEEE 754 binary64 format 2025-03-25 09:40:20 +00:00
ldbl-96 Rename fromfp files in preparation for changing types for C23 2025-11-04 23:41:35 +00:00
ldbl-128 math: Optimize frexpl (binary128) with fast path for normal numbers 2025-11-10 08:58:19 -03:00
ldbl-128ibm Rename fromfp files in preparation for changing types for C23 2025-11-04 23:41:35 +00:00
ldbl-128ibm-compat Implement C23 rootn. 2025-05-14 10:51:46 +00:00
ldbl-opt math: Remove the SVID error handling from remainder 2025-11-04 04:14:01 -03:00
soft-fp Suppress -Wmaybe-uninitialized only for gcc 2025-10-21 09:24:05 -03:00
Makefile
ieee754.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
k_standard.c
k_standardf.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
k_standardl.c Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
libm-alias-finite.h Update copyright dates with scripts/update-copyrights 2025-01-01 11:22:09 -08:00
s_lib_version.c
s_matherr.c
s_signgam.c