diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-12-20 13:01:20 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2025-02-12 16:31:57 -0300 |
commit | 1cd9ccd8c0b23a3106f08f6e29bcbb1f57d3334c (patch) | |
tree | 6baa61be456a0997cc79e21f6a5dd9df33cd6be8 /sysdeps/or1k/nofpu | |
parent | ae679a0aca66b04eead859360f7fbca387adf02c (diff) | |
download | glibc-1cd9ccd8c0b23a3106f08f6e29bcbb1f57d3334c.zip glibc-1cd9ccd8c0b23a3106f08f6e29bcbb1f57d3334c.tar.gz glibc-1cd9ccd8c0b23a3106f08f6e29bcbb1f57d3334c.tar.bz2 |
math: Use atan2pif from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows better performance to the generic atan2pif.
The code was adapted to glibc style and to use the definition of
math_config.h (to handle errno, overflow, and underflow).
Benchtest on x64_64 (Ryzen 9 5900X, gcc 14.2.1), aarch64 (Neoverse-N1,
gcc 13.3.1), and powerpc (POWER10, gcc 13.2.1):
latency master patched improvement
x86_64 79.4006 70.8726 10.74%
x86_64v2 77.5136 69.1424 10.80%
x86_64v3 71.8050 68.1637 5.07%
aarch64 (Neoverse) 27.8363 24.7700 11.02%
power8 39.3893 17.2929 56.10%
power10 19.7200 16.8187 14.71%
reciprocal-throughput master patched improvement
x86_64 38.3457 30.9471 19.29%
x86_64v2 37.4023 30.3112 18.96%
x86_64v3 33.0713 24.4891 25.95%
aarch64 (Neoverse) 19.3683 15.3259 20.87%
power8 19.5507 8.27165 57.69%
power10 9.05331 7.63775 15.64%
Reviewed-by: DJ Delorie <dj@redhat.com>
Diffstat (limited to 'sysdeps/or1k/nofpu')
-rw-r--r-- | sysdeps/or1k/nofpu/libm-test-ulps | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/sysdeps/or1k/nofpu/libm-test-ulps b/sysdeps/or1k/nofpu/libm-test-ulps index a1f7c80..7ff5ee4 100644 --- a/sysdeps/or1k/nofpu/libm-test-ulps +++ b/sysdeps/or1k/nofpu/libm-test-ulps @@ -69,7 +69,6 @@ double: 8 Function: "atan2pi": double: 1 -float: 1 Function: "atan_downward": double: 1 |