glibc/sysdeps/aarch64/fpu
Joe Ramsay 49c250106a AArch64: Optimise SVE scalar callbacks
Instead of using SVE instructions to marshall special results into the
correct lane, just write the entire vector (and the predicate) to
memory, then use cheaper scalar operations.

Geomean speedup of 16% in special intervals on Neoverse with GCC 14.

Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
(cherry picked from commit 5b82fb1882)
2025-11-18 16:43:46 +00:00
..
bits aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
scripts Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
Makefile aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
Versions aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
bench-libmvec-arch.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
cos_advsimd.c aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
cos_sve.c aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
cosf_advsimd.c aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
cosf_sve.c aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
exp_advsimd.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
exp_sve.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
expf_advsimd.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
expf_sve.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
fclrexcpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fegetenv.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fegetexcept.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fegetmode.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fegetround.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
feholdexcpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fenv_private.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fesetenv.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fesetexcept.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fesetmode.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fesetround.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
feupdateenv.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fpu_control.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
fsetexcptflg.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
ftestexcept.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
log_advsimd.c aarch64: Add vector implementations of log routines 2023-06-30 09:04:22 +01:00
log_sve.c aarch64: Add vector implementations of log routines 2023-06-30 09:04:22 +01:00
logf_advsimd.c aarch64: Add vector implementations of log routines 2023-06-30 09:04:22 +01:00
logf_sve.c aarch64: Add vector implementations of log routines 2023-06-30 09:04:22 +01:00
math-barriers.h Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
math-tests-arch.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
math-use-builtins-ceil.h
math-use-builtins-floor.h
math-use-builtins-fma.h
math-use-builtins-fmax.h
math-use-builtins-fmin.h
math-use-builtins-nearbyint.h
math-use-builtins-rint.h
math-use-builtins-round.h
math-use-builtins-sqrt.h
math-use-builtins-trunc.h
math_private.h 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_llrintf.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_llroundf.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_lrintf.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_lroundf.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_roundevenf.c Update copyright dates with scripts/update-copyrights 2023-01-06 21:14:39 +00:00
sin_advsimd.c aarch64: Add vector implementations of sin routines 2023-06-30 09:04:16 +01:00
sin_sve.c aarch64: Add vector implementations of sin routines 2023-06-30 09:04:16 +01:00
sinf_advsimd.c aarch64: Add vector implementations of sin routines 2023-06-30 09:04:16 +01:00
sinf_sve.c aarch64: Add vector implementations of sin routines 2023-06-30 09:04:16 +01:00
sv_math.h AArch64: Optimise SVE scalar callbacks 2025-11-18 16:43:46 +00:00
test-double-advsimd-wrappers.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
test-double-advsimd.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
test-double-sve-wrappers.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
test-double-sve.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
test-float-advsimd-wrappers.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
test-float-advsimd.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
test-float-sve-wrappers.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
test-float-sve.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
test-vpcs-vector-wrapper.h Enable libmvec support for AArch64 2023-05-03 12:09:49 +01:00
v_exp_data.c aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00
v_log_data.c aarch64: Add vector implementations of log routines 2023-06-30 09:04:22 +01:00
v_math.h aarch64: Add vector implementations of cos routines 2023-06-30 09:04:10 +01:00
vecmath_config.h aarch64: Add vector implementations of exp routines 2023-06-30 09:04:26 +01:00