glibc/sysdeps/ieee754/flt-32
Adhemerval Zanella 3b1c5a539b math: Add internal roundeven_finite
Some CORE-MATH routines uses roundeven and most of ISA do not have
an specific instruction for the operation.  In this case, the call
will be routed to generic implementation.

However, if the ISA does support round() and ctz() there is a better
alternative (as used by CORE-MATH).

This patch adds such optimization and also enables it on powerpc.
On a power10 it shows the following improvement:

expm1f                      master      patched       improvement
latency                     9.8574       7.0139            28.85%
reciprocal-throughput       4.3742       2.6592            39.21%

Checked on powerpc64le-linux-gnu and aarch64-linux-gnu.

Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-26 15:07:57 -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 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 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: Fix branch hint for 68d7128942 2024-11-25 13:37:50 -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: 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 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: Add internal roundeven_finite 2024-11-26 15:07:57 -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: Add internal roundeven_finite 2024-11-26 15:07:57 -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