glibc/sysdeps/ieee754/dbl-64
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
..
asincos.tbl Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
atnat2.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
atnat.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
branred.c Fix misspellings in sysdeps/ -- BZ 25337 2023-05-30 23:02:29 +00:00
branred.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dbl2mpn.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
dla.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_acos.c Update. 2001-03-12 00:04:52 +00:00
e_acosh.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_asin.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_atan2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_atanh.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_cosh.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
e_exp2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_exp10.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_exp_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_exp.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_fmod.c math: Improve fmod(f) performance 2023-04-17 13:03:10 +01:00
e_gamma_r.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_hypot.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_ilogb.c Format floating routines. 2013-10-17 16:03:24 +02:00
e_j0.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_j1.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_jn.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_lgamma_r.c Fix misspellings in sysdeps/ -- BZ 25337 2023-05-30 23:02:29 +00:00
e_log2_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_log2.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_log10.c Remove dbl-64/wordsize-64 (part 2) 2021-01-07 15:26:26 +00:00
e_log_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_log.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_pow_log_data.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_pow.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_remainder.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
e_sinh.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_sqrt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
gamma_product.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
gamma_productf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
k_rem_pio2.c Fix a few typos in comments 2019-01-12 13:44:51 +00:00
k_tan.c Replace sysdeps/ieee754/dbl-64/k_tan.c with empty file 2012-02-26 16:10:46 +01:00
lgamma_neg.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
lgamma_product.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
Makefile Add new pow implementation 2018-09-19 10:04:51 +01:00
math_config.h aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
math_err.c math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
mpn2dbl.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
mydefs.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
powtwo.tbl Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
root.tbl Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_asinh.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_atan.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_cbrt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_ceil.c Use GCC builtins for ceil functions if desired. 2019-12-11 15:12:17 +01:00
s_copysign.c Use GCC builtins for copysign functions if desired. 2019-12-11 15:12:19 +01:00
s_cos.c Update. 2001-03-12 00:04:52 +00:00
s_erf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_expm1.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_f32xaddf64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_f32xdivf64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_f32xfmaf64.c Add narrowing fma functions 2021-09-22 21:25:31 +00:00
s_f32xmulf64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_f32xsqrtf64.c Add narrowing square root functions 2021-09-10 20:56:22 +00:00
s_f32xsubf64.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fabs.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fadd.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fdiv.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_ffma.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_finite.c math: Use wordsize-64 version for finite 2019-06-12 14:32:39 -03:00
s_floor.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fma.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fmaf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fmul.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fpclassify.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_frexp.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fromfp_main.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fromfp.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fromfpx.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fsqrt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_fsub.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_getpayload.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_isinf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_isnan.c math: Use wordsize-64 version for isnan 2019-06-12 14:32:18 -03:00
s_issignaling.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_llrint.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_llround.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_log1p.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_logb.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_lrint.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_lround.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_modf.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nearbyint.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
s_nexttoward.c Update. 1999-07-14 00:54:57 +00:00
s_nextup.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_remquo.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_rint.c Use GCC builtins for rint functions if desired. 2019-12-11 15:12:16 +01:00
s_round.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_roundeven.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_scalbln.c Remove dbl-64/wordsize-64 (part 2) 2021-01-07 15:26:26 +00:00
s_scalbn.c Remove dbl-64/wordsize-64 (part 2) 2021-01-07 15:26:26 +00:00
s_setpayload_main.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_setpayload.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_setpayloadsig.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_signbit.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_sin.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_sincos.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_tan.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_tanh.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_totalorder.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_totalordermag.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_trunc.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
s_ufromfp.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_ufromfpx.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
sincostab.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
uasncs.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
uatan.tbl Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
urem.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
usncs.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
utan.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
utan.tbl Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
w_exp2.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_exp.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_fmod.c math: Remove the error handling wrapper from fmod and fmodf 2023-04-03 16:45:27 -03:00
w_hypot.c math: Remove the error handling wrapper from hypot and hypotf 2021-12-13 10:08:46 -03:00
w_log2.c Remove the error handling wrapper from log2 2018-11-21 09:57:21 +00:00
w_log.c Remove the error handling wrapper from log 2018-11-21 09:56:27 +00:00
w_pow.c Remove the error handling wrapper from pow 2018-11-21 09:58:36 +00:00
x2y2m1.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
x2y2m1f.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00