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

The code was adapted to glibc style, to use the definition of
math_config.h, to remove errno handling, and to use a generic
128 bit routine for ABIs that do not support it natively.

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

latency                       master       patched  improvement
x86_64                       82.3961       54.8052       33.49%
x86_64v2                     82.3415       54.8052       33.44%
x86_64v3                     69.3661       50.4864       27.22%
i686                         219.271       45.5396       79.23%
aarch64                      29.2127       19.1951       34.29%
power10                      19.5060       16.2760       16.56%

reciprocal-throughput         master       patched  improvement
x86_64                       28.3976       19.7334       30.51%
x86_64v2                     28.4568       19.7334       30.65%
x86_64v3                     21.1815       16.1811       23.61%
i686                         105.016       15.1426       85.58%
aarch64                      18.1573       10.7681       40.70%
power10                       8.7207        8.7097        0.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>
2024-11-22 10:52:27 -03:00
..
e_acosf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_acoshf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_asinf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atan2f.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_atanhf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_coshf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp2f_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_exp2f.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 e_gammaf_r to glibc code and style 2024-11-01 11:17:04 -03:00
e_hypotf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_ilogbf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_j0f.c math: Fix float conversion regressions with gcc-12 [BZ #28713] 2022-01-10 14:27:17 +00:00
e_j1f.c math: Fix float conversion regressions with gcc-12 [BZ #28713] 2022-01-10 14:27:17 +00:00
e_jnf.c math: Fix float conversion regressions with gcc-12 [BZ #28713] 2022-01-10 14:27:17 +00:00
e_lgammaf_r.c math: Use lgammaf from CORE-MATH 2024-11-22 10:52:27 -03:00
e_log2f_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_log2f.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_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_logf.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_powf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
e_remainderf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sinhf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_sqrtf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 Fix lgamma (negative) inaccuracy (bug 2542, bug 2543, bug 2558). 2015-09-10 22:27:58 +00:00
math_config.h math: Improve layout of expf data 2024-10-01 13:39:26 +01: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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_atanf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_cbrtf.c math: Use cbrtf from CORE-MATH 2024-11-22 10:01:03 -03:00
s_ceilf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_copysignf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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: Use expm1f from CORE-MATH 2024-11-01 11:27:35 -03:00
s_fabsf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_finitef.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_floorf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fpclassifyf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_frexpf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_fromfpf_main.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_fromfpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fromfpxf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_getpayloadf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_isinff.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_isnanf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_scalbnf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_setpayloadf_main.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_setpayloadf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_setpayloadsigf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_signbitf.c 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_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_sinf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_tanf.c math: Use tanf from CORE-MATH 2024-11-22 10:52:27 -03:00
s_tanhf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_ufromfpxf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
sincosf_poly.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
w_exp2f.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_expf.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_fmodf.c math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
w_hypotf.c math: Remove the error handling wrapper from hypot and hypotf 2021-12-13 10:08:46 -03:00
w_log1pf.c math: Use log1pf from CORE-MATH 2024-11-01 11:27:39 -03:00
w_log2f.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_logf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_powf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00