diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-11-19 13:31:14 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-12-18 17:24:43 -0300 |
commit | 7cfd8b56982a88511e62241346b23d611f822793 (patch) | |
tree | 43082cf9f0d2b13da5b43747511b8e8e2a71df6c /sysdeps/or1k | |
parent | 6f9bacf36b20b1a87fa4ec24c9d67c47985fbc8b (diff) | |
download | glibc-7cfd8b56982a88511e62241346b23d611f822793.zip glibc-7cfd8b56982a88511e62241346b23d611f822793.tar.gz glibc-7cfd8b56982a88511e62241346b23d611f822793.tar.bz2 |
math: Use atanhf from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows slight better performance to the generic atanhf.
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 59.4930 45.8568 22.92%
x86_64v2 59.5705 45.5804 23.48%
x86_64v3 53.1838 37.7155 29.08%
i686 169.354 133.5940 21.12%
aarch64 (Neoverse) 26.0781 16.9829 34.88%
power10 15.6591 10.7623 31.27%
reciprocal-throughput master patched improvement
x86_64 23.5903 18.5766 21.25%
x86_64v2 22.6489 18.2683 19.34%
x86_64v3 19.0401 13.9474 26.75%
i686 97.6034 107.3260 -9.96%
aarch64 (Neoverse) 15.3664 9.57846 37.67%
power10 6.8877 4.6242 32.86%
Signed-off-by: Alexei Sibidanov <sibid@uvic.ca>
Signed-off-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>
Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: DJ Delorie <dj@redhat.com>
Diffstat (limited to 'sysdeps/or1k')
-rw-r--r-- | sysdeps/or1k/fpu/libm-test-ulps | 4 | ||||
-rw-r--r-- | sysdeps/or1k/nofpu/libm-test-ulps | 4 |
2 files changed, 0 insertions, 8 deletions
diff --git a/sysdeps/or1k/fpu/libm-test-ulps b/sysdeps/or1k/fpu/libm-test-ulps index 3fee2b5..357d0a6 100644 --- a/sysdeps/or1k/fpu/libm-test-ulps +++ b/sysdeps/or1k/fpu/libm-test-ulps @@ -74,19 +74,15 @@ double: 1 Function: "atanh": double: 2 -float: 2 Function: "atanh_downward": double: 3 -float: 3 Function: "atanh_towardzero": double: 2 -float: 2 Function: "atanh_upward": double: 3 -float: 3 Function: "cabs": double: 1 diff --git a/sysdeps/or1k/nofpu/libm-test-ulps b/sysdeps/or1k/nofpu/libm-test-ulps index a380709..ac488ab 100644 --- a/sysdeps/or1k/nofpu/libm-test-ulps +++ b/sysdeps/or1k/nofpu/libm-test-ulps @@ -86,19 +86,15 @@ double: 1 Function: "atanh": double: 2 -float: 2 Function: "atanh_downward": double: 3 -float: 3 Function: "atanh_towardzero": double: 2 -float: 2 Function: "atanh_upward": double: 3 -float: 3 Function: "atanpi": double: 1 |