aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/riscv/rvd
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-11-18 17:57:31 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-12-18 17:24:43 -0300
commit6f9bacf36b20b1a87fa4ec24c9d67c47985fbc8b (patch)
tree474d38c31117125e6ddaee6d614c7b9de6b4b3ac /sysdeps/riscv/rvd
parenta357d6273f796b384b7e36d58a8de947ebde9668 (diff)
downloadglibc-6f9bacf36b20b1a87fa4ec24c9d67c47985fbc8b.zip
glibc-6f9bacf36b20b1a87fa4ec24c9d67c47985fbc8b.tar.gz
glibc-6f9bacf36b20b1a87fa4ec24c9d67c47985fbc8b.tar.bz2
math: Use atan2f from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode) and shows slight better performance to the generic atan2f. 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 68.1175 69.2014 -1.59% x86_64v2 66.9884 66.0081 1.46% x86_64v3 57.7034 61.6407 -6.82% i686 189.8690 152.7560 19.55% aarch64 (Neoverse) 32.6151 24.5382 24.76% power10 21.7282 17.1896 20.89% reciprocal-throughput master patched improvement x86_64 34.5202 31.6155 8.41% x86_64v2 32.6379 30.3372 7.05% x86_64v3 34.3677 23.6455 31.20% i686 157.7290 75.8308 51.92% aarch64 (Neoverse) 27.7788 16.2671 41.44% power10 15.5715 8.1588 47.60% 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/rvd')
-rw-r--r--sysdeps/riscv/rvd/libm-test-ulps8
1 files changed, 0 insertions, 8 deletions
diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps
index 0e3fb96..ad3242f 100644
--- a/sysdeps/riscv/rvd/libm-test-ulps
+++ b/sysdeps/riscv/rvd/libm-test-ulps
@@ -70,22 +70,18 @@ double: 1
ldouble: 1
Function: "atan2":
-float: 1
ldouble: 2
Function: "atan2_downward":
double: 1
-float: 2
ldouble: 2
Function: "atan2_towardzero":
double: 1
-float: 2
ldouble: 3
Function: "atan2_upward":
double: 1
-float: 1
ldouble: 2
Function: "atan_downward":
@@ -217,22 +213,18 @@ float: 2
ldouble: 4
Function: "carg":
-float: 1
ldouble: 2
Function: "carg_downward":
double: 1
-float: 2
ldouble: 2
Function: "carg_towardzero":
double: 1
-float: 2
ldouble: 3
Function: "carg_upward":
double: 1
-float: 1
ldouble: 2
Function: Real part of "casin":