diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-11-19 10:40:07 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-12-18 17:24:43 -0300 |
commit | 958383678549d7f18b7d2281a52956472ebf0d67 (patch) | |
tree | 367ee22807d12cb87a1eb9b16d8d6bf8d15b3808 /sysdeps/powerpc/fpu/libm-test-ulps | |
parent | 7cfd8b56982a88511e62241346b23d611f822793 (diff) | |
download | glibc-958383678549d7f18b7d2281a52956472ebf0d67.zip glibc-958383678549d7f18b7d2281a52956472ebf0d67.tar.gz glibc-958383678549d7f18b7d2281a52956472ebf0d67.tar.bz2 |
math: Use coshf from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode),
although it should worse performance than current one. The current
implementation performance comes mainly from the internal usage of
the optimize expf implementation, and shows a maximum ULPs of 2 for
FE_TONEAREST and 3 for other rounding modes.
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 40.6995 49.0737 -20.58%
x86_64v2 40.5841 44.3604 -9.30%
x86_64v3 39.3879 39.7502 -0.92%
i686 112.3380 129.8570 -15.59%
aarch64 (Neoverse) 18.6914 17.0946 8.54%
power10 11.1343 9.3245 16.25%
reciprocal-throughput master patched improvement
x86_64 18.6471 24.1077 -29.28%
x86_64v2 17.7501 20.2946 -14.34%
x86_64v3 17.8262 17.1877 3.58%
i686 64.1454 86.5645 -34.95%
aarch64 (Neoverse) 9.77226 12.2314 -25.16%
power10 4.0200 5.3316 -32.63%
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/powerpc/fpu/libm-test-ulps')
-rw-r--r-- | sysdeps/powerpc/fpu/libm-test-ulps | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 4165161..e176745 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -854,25 +854,21 @@ ldouble: 5 Function: "cosh": double: 2 -float: 2 float128: 2 ldouble: 3 Function: "cosh_downward": double: 3 -float: 1 float128: 3 ldouble: 6 Function: "cosh_towardzero": double: 3 -float: 1 float128: 3 ldouble: 6 Function: "cosh_upward": double: 2 -float: 2 float128: 3 ldouble: 2 |