glibc/sysdeps/ieee754
Adhemerval Zanella 994fec2397 math: Use erff from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows better performance to the generic erff.

The code was adapted to glibc style and to use the definition of
math_config.h.

Benchtest on x64_64 (Ryzen 9 5900X, gcc 14.2.1), aarch64 (M1,
gcc 13.2.1), and powerpc (POWER10, gcc 13.2.1):

latency                       master       patched  improvement
x86_64                       85.7363       45.1372       47.35%
x86_64v2                     86.6337       38.5816       55.47%
x86_64v3                     71.3810       34.0843       52.25%
i686                         190.143       97.5014       48.72%
aarch64                      34.9091       14.9320       57.23%
power10                      38.6160        8.5188       77.94%
powerpc                      39.7446       8.45781       78.72%

reciprocal-throughput         master       patched  improvement
x86_64                       35.1739       14.7603       58.04%
x86_64v2                     34.5976       11.2283       67.55%
x86_64v3                     27.3260        9.8550       63.94%
i686                         91.0282       30.8840       66.07%
aarch64                      22.5831        6.9615       69.17%
power10                      18.0386        3.0918       82.86%
powerpc                      20.7277       3.63396       82.47%

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>
2024-11-22 10:52:27 -03:00
..
dbl-64 math: Split s_erfF in erff and erfc 2024-11-22 10:52:26 -03:00
float128 math: Split s_erfF in erff and erfc 2024-11-22 10:52:26 -03:00
flt-32 math: Use erff from CORE-MATH 2024-11-22 10:52:27 -03:00
ldbl-64-128 math: Provide missing math symbols on libc.a (BZ 31781) 2024-05-23 09:36:08 -03:00
ldbl-96 math: Split s_erfF in erff and erfc 2024-11-22 10:52:26 -03:00
ldbl-128 math: Split s_erfF in erff and erfc 2024-11-22 10:52:26 -03:00
ldbl-128ibm math: Split s_erfF in erff and erfc 2024-11-22 10:52:26 -03:00
ldbl-128ibm-compat Implement C23 exp2m1, exp10m1 2024-06-17 16:31:49 +00:00
ldbl-opt Convert to autoconf 2.72 (vanilla release, no distribution patches) 2024-06-17 21:15:28 +02:00
soft-fp Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ieee754.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
k_standard.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
k_standardl.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
libm-alias-finite.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Makefile Avoid -Wno-write-strings for k_standard.c. 2015-02-26 22:50:54 +00:00
s_lib_version.c Simplify math-svid-compat code. 2017-08-28 15:19:52 +00:00
s_matherr.c Obsolete matherr, _LIB_VERSION, libieee.a. 2017-08-21 17:45:10 +00:00
s_signgam.c Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00