aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/riscv
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-10-18 16:04:30 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-12-18 17:24:43 -0300
commit66fa7ad437affc64b3a81332d750e6f998b2e343 (patch)
tree53bca177661c41fdffd74568289c9e42f1f3059b /sysdeps/riscv
parent45126f866c3c986fc99941b2af8ed65d7679dd4b (diff)
downloadglibc-66fa7ad437affc64b3a81332d750e6f998b2e343.zip
glibc-66fa7ad437affc64b3a81332d750e6f998b2e343.tar.gz
glibc-66fa7ad437affc64b3a81332d750e6f998b2e343.tar.bz2
math: Use acosf from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode) and shows slight better performance to the generic acosf. 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 52.5098 36.6312 30.24% x86_64v2 53.0217 37.3091 29.63% x86_64v3 42.8501 32.3977 24.39% i686 207.3960 109.4000 47.25% aarch64 21.3694 13.7871 35.48% power10 14.5542 7.2891 49.92% reciprocal-throughput master patched improvement x86_64 14.1487 15.9508 -12.74% x86_64v2 14.3293 16.1899 -12.98% x86_64v3 13.6563 12.6161 7.62% i686 158.4060 45.7354 71.13% aarch64 12.5515 9.19233 26.76% power10 5.7868 3.3487 42.13% 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/riscv')
-rw-r--r--sysdeps/riscv/nofpu/libm-test-ulps4
-rw-r--r--sysdeps/riscv/rvd/libm-test-ulps4
2 files changed, 0 insertions, 8 deletions
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps
index 84b9e15..8d3b048 100644
--- a/sysdeps/riscv/nofpu/libm-test-ulps
+++ b/sysdeps/riscv/nofpu/libm-test-ulps
@@ -3,22 +3,18 @@
# Maximal error of functions:
Function: "acos":
double: 1
-float: 1
ldouble: 1
Function: "acos_downward":
double: 1
-float: 1
ldouble: 1
Function: "acos_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "acos_upward":
double: 1
-float: 1
ldouble: 1
Function: "acosh":
diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps
index b9446e5..a1d85be 100644
--- a/sysdeps/riscv/rvd/libm-test-ulps
+++ b/sysdeps/riscv/rvd/libm-test-ulps
@@ -3,22 +3,18 @@
# Maximal error of functions:
Function: "acos":
double: 1
-float: 1
ldouble: 1
Function: "acos_downward":
double: 1
-float: 1
ldouble: 1
Function: "acos_towardzero":
double: 1
-float: 1
ldouble: 1
Function: "acos_upward":
double: 1
-float: 1
ldouble: 1
Function: "acosh":