diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-11-14 11:07:11 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-12-18 17:24:43 -0300 |
commit | ed608a40e2903351c64a3cea51ce8bd7c62996ef (patch) | |
tree | e4e517e967698aadb2ff89fef5cde47bbf70761c /sysdeps/aarch64 | |
parent | 5fb4b566efd7785ce6fc75d16e369b6918549620 (diff) | |
download | glibc-ed608a40e2903351c64a3cea51ce8bd7c62996ef.zip glibc-ed608a40e2903351c64a3cea51ce8bd7c62996ef.tar.gz glibc-ed608a40e2903351c64a3cea51ce8bd7c62996ef.tar.bz2 |
math: Use asinhf from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows slight better performance to the generic asinhf.
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 64.5128 56.9717 11.69%
x86_64v2 63.3065 57.2666 9.54%
x86_64v3 62.8719 51.4170 18.22%
i686 189.1630 137.635 27.24%
aarch64 (Neoverse) 25.3551 20.5757 18.85%
power10 17.9712 13.3302 25.82%
reciprocal-throughput master patched improvement
x86_64 20.0844 15.4731 22.96%
x86_64v2 19.2919 15.4000 20.17%
x86_64v3 18.7226 11.9009 36.44%
i686 103.7670 80.2681 22.65%
aarch64 (Neoverse) 12.5005 8.68969 30.49%
power10 7.2220 5.03617 30.27%
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/aarch64')
-rw-r--r-- | sysdeps/aarch64/libm-test-ulps | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps index da054b6..44493b3 100644 --- a/sysdeps/aarch64/libm-test-ulps +++ b/sysdeps/aarch64/libm-test-ulps @@ -95,7 +95,6 @@ ldouble: 2 Function: "asinh": double: 2 -float: 2 ldouble: 4 Function: "asinh_advsimd": @@ -104,7 +103,6 @@ float: 2 Function: "asinh_downward": double: 3 -float: 3 ldouble: 4 Function: "asinh_sve": @@ -113,12 +111,10 @@ float: 2 Function: "asinh_towardzero": double: 2 -float: 2 ldouble: 2 Function: "asinh_upward": double: 3 -float: 3 ldouble: 4 Function: "asinpi": |