diff options
author | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2024-12-13 15:43:07 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2025-02-28 14:52:00 +0000 |
commit | 5a08d049dc5037e89eb95bb1506652f0043fa39e (patch) | |
tree | 9ed2ea458d916831d64602c0c8880ccd4719f77b | |
parent | 097299ffa904b327fce83770fa6a522e4393ddb3 (diff) | |
download | glibc-release/2.38/master.zip glibc-release/2.38/master.tar.gz glibc-release/2.38/master.tar.bz2 |
math: Improve layout of exp/exp10 datarelease/2.38/master
GCC aligns global data to 16 bytes if their size is >= 16 bytes. This patch
changes the exp_data struct slightly so that the fields are better aligned
and without gaps. As a result on targets that support them, more load-pair
instructions are used in exp.
The exp benchmark improves 2.5%, "144bits" by 7.2%, "768bits" by 12.7% on
Neoverse V2.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit 5afaf99edb326fd9f36eb306a828d129a3a1d7f7)
-rw-r--r-- | sysdeps/ieee754/dbl-64/math_config.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/ieee754/dbl-64/math_config.h b/sysdeps/ieee754/dbl-64/math_config.h index 19af33f..52b720e 100644 --- a/sysdeps/ieee754/dbl-64/math_config.h +++ b/sysdeps/ieee754/dbl-64/math_config.h @@ -195,10 +195,11 @@ check_uflow (double x) extern const struct exp_data { double invln2N; - double shift; double negln2hiN; double negln2loN; double poly[4]; /* Last four coefficients. */ + double shift; + double exp2_shift; double exp2_poly[EXP2_POLY_ORDER]; uint64_t tab[2*(1 << EXP_TABLE_BITS)]; |