glibc/sysdeps/ieee754/flt-32
Joe Ramsay aed39a3aa3 aarch64: Add vector implementations of cos routines
Replace the loop-over-scalar placeholder routines with optimised
implementations from Arm Optimized Routines (AOR).

Also add some headers containing utilities for aarch64 libmvec
routines, and update libm-test-ulps.

Data tables for new routines are used via a pointer with a
barrier on it, in order to prevent overly aggressive constant
inlining in GCC. This allows a single adrp, combined with offset
loads, to be used for every constant in the table.

Special-case handlers are marked NOINLINE in order to confine the
save/restore overhead of switching from vector to normal calling
standard. This way we only incur the extra memory access in the
exceptional cases. NOINLINE definitions have been moved to
math_private.h in order to reduce duplication.

AOR exposes a config option, WANT_SIMD_EXCEPT, to enable
selective masking (and later fixing up) of invalid lanes, in
order to trigger fp exceptions correctly (AdvSIMD only). This is
tested and maintained in AOR, however it is configured off at
source level here for performance reasons. We keep the
WANT_SIMD_EXCEPT blocks in routine sources to greatly simplify
the upstreaming process from AOR to glibc.

Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
2023-06-30 09:04:10 +01: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 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00:00
e_exp2f.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_exp10f.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_expf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_fmodf.c math: Improve fmod(f) performance 2023-04-17 13:03:10 +01:00
e_gammaf_r.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_hypotf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_log2f_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_log2f.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_log10f.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_logf_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_logf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_powf_log2_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_powf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
lgamma_negf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
math_errf.c math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
mpn2flt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
reduce_aux.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00:00
s_erff.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_expm1f.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00:00
s_llrintf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_llroundf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_log1pf.c math: Fix float conversion regressions with gcc-12 [BZ #28713] 2022-01-10 14:27:17 +00: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 2023-01-06 21:14:39 +00:00
s_lroundf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_modff.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nearbyintf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 2023-01-06 21:14:39 +00:00
s_remquof.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00:00
s_roundf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00:00
s_sincosf_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_sincosf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_sincosf.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_sinf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_tanf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
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 2023-01-06 21:14:39 +00:00
s_totalordermagf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_truncf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00: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 2023-01-06 21:14:39 +00: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_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