glibc/sysdeps/ieee754/flt-32
Adhemerval Zanella 7cfd8b5698 math: Use atanhf from CORE-MATH
The CORE-MATH implementation is correctly rounded (for any rounding mode)
and shows slight better performance to the generic atanhf.

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                      59.4930        45.8568        22.92%
x86_64v2                    59.5705        45.5804        23.48%
x86_64v3                    53.1838        37.7155        29.08%
i686                        169.354       133.5940        21.12%
aarch64 (Neoverse)          26.0781        16.9829        34.88%
power10                     15.6591        10.7623        31.27%

reciprocal-throughput        master        patched   improvement
x86_64                      23.5903        18.5766        21.25%
x86_64v2                    22.6489        18.2683        19.34%
x86_64v3                    19.0401        13.9474        26.75%
i686                        97.6034       107.3260        -9.96%
aarch64 (Neoverse)          15.3664        9.57846        37.67%
power10                      6.8877        4.6242         32.86%

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-12-18 17:24:43 -03:00
..
e_acosf.c math: Use acosf from CORE-MATH 2024-12-18 17:24:43 -03:00
e_acoshf.c math: Use acoshf from CORE-MATH 2024-12-18 17:24:43 -03:00
e_asinf.c math: Use asinf from CORE-MATH 2024-12-18 17:24:43 -03:00
e_atan2f.c math: Use atan2f from CORE-MATH 2024-12-18 17:24:43 -03:00
e_atanhf.c math: Use atanhf from CORE-MATH 2024-12-18 17:24:43 -03:00
e_coshf.c
e_exp2f.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_exp2f_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_exp10f.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_expf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_fmodf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_gammaf_r.c math: Add internal roundeven_finite 2024-11-26 15:07:57 -03:00
e_hypotf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_ilogbf.c
e_j0f.c
e_j1f.c
e_jnf.c
e_lgammaf_r.c math: Fix branch hint for 68d7128942 2024-11-25 13:37:50 -03:00
e_log2f.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_log2f_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_log10f.c math: Fix log10f on some ABIs 2024-11-07 07:59:43 -03:00
e_logf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_logf_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_powf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_powf_log2_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_remainderf.c
e_sinhf.c
e_sqrtf.c
k_tanf.c math: Use tanf from CORE-MATH 2024-11-22 10:52:27 -03:00
lgamma_negf.c math: Use lgammaf from CORE-MATH 2024-11-22 10:52:27 -03:00
lgamma_productf.c
math_config.h math: Add internal roundeven_finite 2024-11-26 15:07:57 -03:00
math_errf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mpn2flt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
reduce_aux.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_asinhf.c math: Use asinhf from CORE-MATH 2024-12-18 17:24:43 -03:00
s_atanf.c math: Use atanf from CORE-MATH 2024-12-18 17:24:43 -03:00
s_cbrtf.c math: Use cbrtf from CORE-MATH 2024-11-22 10:01:03 -03:00
s_ceilf.c
s_copysignf.c
s_cosf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_erfcf.c math: Use erfcf from CORE-MATH 2024-11-22 10:52:27 -03:00
s_erff.c math: Use erff from CORE-MATH 2024-11-22 10:52:27 -03:00
s_exp2m1f.c math: Fix incorrect results of exp10m1f with some GCC versions 2024-11-06 16:09:05 +01:00
s_exp10m1f.c math: Fix incorrect results of exp10m1f with some GCC versions 2024-11-06 16:09:05 +01:00
s_expm1f.c math: Add internal roundeven_finite 2024-11-26 15:07:57 -03:00
s_fabsf.c
s_finitef.c
s_floorf.c
s_fpclassifyf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_frexpf.c
s_fromfpf.c
s_fromfpf_main.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fromfpxf.c
s_getpayloadf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_isinff.c
s_isnanf.c
s_issignalingf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_llrintf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_llroundf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_log1pf.c math: Use log1pf from CORE-MATH 2024-11-01 11:27:39 -03:00
s_log2p1f.c math: Use log2p1f from CORE-MATH 2024-11-01 11:27:39 -03:00
s_log10p1f.c math: Use log10p1f from CORE-MATH 2024-11-01 11:27:40 -03:00
s_logbf.c Use GCC builtins for logb functions if desired. 2022-11-29 16:00:28 +08:00
s_lrintf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_lroundf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_modff.c
s_nearbyintf.c nearbyint: Don't define alias when used in IFUNC [BZ #31759] 2024-05-20 05:21:41 -07:00
s_nextafterf.c
s_nextupf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_remquof.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_rintf.c
s_roundevenf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_roundf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_scalblnf.c
s_scalbnf.c
s_setpayloadf.c
s_setpayloadf_main.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_setpayloadsigf.c
s_signbitf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_sincosf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_sincosf.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_sincosf_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_sinf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_tanf.c math: Add internal roundeven_finite 2024-11-26 15:07:57 -03:00
s_tanhf.c
s_totalorderf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_totalordermagf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_truncf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_ufromfpf.c
s_ufromfpxf.c
sincosf_poly.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
w_exp2f.c
w_expf.c
w_fmodf.c math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
w_hypotf.c
w_log1pf.c math: Use log1pf from CORE-MATH 2024-11-01 11:27:39 -03:00
w_log2f.c
w_logf.c
w_powf.c