diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-12-20 10:42:35 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2025-02-12 16:31:57 -0300 |
commit | edb2a8f0ae1b849737a7559c39779131f908adaa (patch) | |
tree | db7ccf4d8b6cd7bfc46a1b37975cc71b6f6c96c7 /sysdeps/riscv | |
parent | 57d1fc997143c15a1fb06aaf038f1ef3afe7bd91 (diff) | |
download | glibc-edb2a8f0ae1b849737a7559c39779131f908adaa.zip glibc-edb2a8f0ae1b849737a7559c39779131f908adaa.tar.gz glibc-edb2a8f0ae1b849737a7559c39779131f908adaa.tar.bz2 |
math: Use acospif from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows better performance to the generic acospif.
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 54.8281 42.9070 21.74%
x86_64v2 54.1717 42.7497 21.08%
x86_64v3 49.3552 34.1512 30.81%
aarch64 (Neoverse) 17.9395 14.3733 19.88%
power8 20.3110 8.8609 56.37%
power10 11.3113 8.84067 21.84%
reciprocal-throughput master patched improvement
x86_64 21.2301 14.4803 31.79%
x86_64v2 20.6858 13.9506 32.56%
x86_64v3 16.1944 11.3377 29.99%
aarch64 (Neoverse) 11.4474 7.13282 37.69%
power8 10.6916 3.57547 66.56%
power10 4.64269 3.54145 23.72%
Reviewed-by: DJ Delorie <dj@redhat.com>
Diffstat (limited to 'sysdeps/riscv')
-rw-r--r-- | sysdeps/riscv/nofpu/libm-test-ulps | 1 | ||||
-rw-r--r-- | sysdeps/riscv/rvd/libm-test-ulps | 4 |
2 files changed, 0 insertions, 5 deletions
diff --git a/sysdeps/riscv/nofpu/libm-test-ulps b/sysdeps/riscv/nofpu/libm-test-ulps index d971ee2..6206a95 100644 --- a/sysdeps/riscv/nofpu/libm-test-ulps +++ b/sysdeps/riscv/nofpu/libm-test-ulps @@ -35,7 +35,6 @@ ldouble: 2 Function: "acospi": double: 2 -float: 1 ldouble: 2 Function: "asin": diff --git a/sysdeps/riscv/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps index 0f84906..124ca4b 100644 --- a/sysdeps/riscv/rvd/libm-test-ulps +++ b/sysdeps/riscv/rvd/libm-test-ulps @@ -35,22 +35,18 @@ ldouble: 3 Function: "acospi": double: 2 -float: 1 ldouble: 2 Function: "acospi_downward": double: 1 -float: 2 ldouble: 1 Function: "acospi_towardzero": double: 1 -float: 2 ldouble: 1 Function: "acospi_upward": double: 2 -float: 1 ldouble: 2 Function: "asin": |