glibc/sysdeps/aarch64/fpu
Joe Ramsay 5bc100bd4b AArch64: Improve codegen in users of AdvSIMD log1pf helper
log1pf is quite register-intensive - use fewer registers for the
polynomial, and make various changes to shorten dependency chains in
parent routines.  There is now no spilling with GCC 14.  Accuracy moves
around a little - comments adjusted accordingly but does not require
regen-ulps.

Use the helper in log1pf as well, instead of having separate
implementations.  The more accurate polynomial means special-casing can
be simplified, and the shorter dependency chain avoids the usual dance
around v0, which is otherwise difficult.

There is a small duplication of vectors containing 1.0f (or 0x3f800000) -
GCC is not currently able to efficiently handle values which fit in FMOV
but not MOVI, and are reinterpreted to integer.  There may be potential
for more optimisation if this is fixed.

Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
2024-09-23 15:44:07 +01:00
..
bits AArch64: Add vector logp1 alias for log1p 2024-09-19 17:53:34 +01:00
finclude Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
scripts Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
acos_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
acos_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
acosf_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
acosf_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
acosh_advsimd.c aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
acosh_sve.c aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
acoshf_advsimd.c AArch64: Improve codegen in users of AdvSIMD log1pf helper 2024-09-23 15:44:07 +01:00
acoshf_sve.c aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
advsimd_f32_protos.h AArch64: Add vector logp1 alias for log1p 2024-09-19 17:53:34 +01:00
asin_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
asin_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
asinf_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
asinf_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
asinh_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
asinh_sve.c aarch64/fpu: Add vector variants of asinh 2024-04-04 10:33:02 +01:00
asinhf_advsimd.c AArch64: Improve codegen in users of AdvSIMD log1pf helper 2024-09-23 15:44:07 +01:00
asinhf_sve.c aarch64/fpu: Add vector variants of asinh 2024-04-04 10:33:02 +01:00
atan2_advsimd.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
atan2_sve.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
atan2f_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atan2f_sve.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
atan_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atan_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atanf_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atanf_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
atanh_advsimd.c aarch64/fpu: Add vector variants of atanh 2024-04-04 10:33:12 +01:00
atanh_sve.c aarch64/fpu: Add vector variants of atanh 2024-04-04 10:33:12 +01:00
atanhf_advsimd.c AArch64: Improve codegen in users of AdvSIMD log1pf helper 2024-09-23 15:44:07 +01:00
atanhf_sve.c aarch64/fpu: Add vector variants of atanh 2024-04-04 10:33:12 +01:00
bench-libmvec-arch.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
cbrt_advsimd.c aarch64/fpu: Add vector variants of cbrt 2024-05-16 14:35:06 +01:00
cbrt_sve.c aarch64/fpu: Add vector variants of cbrt 2024-05-16 14:35:06 +01:00
cbrtf_advsimd.c aarch64/fpu: Add vector variants of cbrt 2024-05-16 14:35:06 +01:00
cbrtf_sve.c aarch64/fpu: Add vector variants of cbrt 2024-05-16 14:35:06 +01:00
cos_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
cos_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
cosf_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
cosf_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
cosh_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
cosh_sve.c aarch64/fpu: Add vector variants of cosh 2024-04-04 10:32:52 +01:00
coshf_advsimd.c aarch64/fpu: Add vector variants of cosh 2024-04-04 10:32:52 +01:00
coshf_sve.c AArch64: Improve codegen in SVE expf & related routines 2024-09-23 15:44:07 +01:00
erf_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
erf_data.c aarch64/fpu: Add vector variants of erf 2024-04-04 10:32:48 +01:00
erf_sve.c aarch64/fpu: Add vector variants of erf 2024-04-04 10:32:48 +01:00
erfc_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
erfc_data.c aarch64/fpu: Add vector variants of erfc 2024-04-04 10:33:24 +01:00
erfc_sve.c aarch64/fpu: Add vector variants of erfc 2024-04-04 10:33:24 +01:00
erfcf_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
erfcf_data.c aarch64/fpu: Add vector variants of erfc 2024-04-04 10:33:24 +01:00
erfcf_sve.c aarch64/fpu: Add vector variants of erfc 2024-04-04 10:33:24 +01:00
erff_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
erff_data.c aarch64/fpu: Add vector variants of erf 2024-04-04 10:32:48 +01:00
erff_sve.c aarch64/fpu: Add vector variants of erf 2024-04-04 10:32:48 +01:00
exp2_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
exp2_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
exp2f_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
exp2f_sve.c AArch64: Improve codegen in SVE expf & related routines 2024-09-23 15:44:07 +01:00
exp10_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
exp10_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
exp10f_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
exp10f_sve.c AArch64: Improve codegen in SVE expf & related routines 2024-09-23 15:44:07 +01:00
exp_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
exp_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
expf_advsimd.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
expf_sve.c AArch64: Improve codegen in SVE expf & related routines 2024-09-23 15:44:07 +01:00
expm1_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
expm1_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
expm1f_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
expm1f_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fclrexcpt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fedisblxcpt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
feenablxcpt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fegetenv.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fegetexcept.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fegetmode.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fegetround.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
feholdexcpt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fenv_private.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fesetenv.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fesetexcept.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fesetmode.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fesetround.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
feupdateenv.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fgetexcptflg.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
finite_pow.h aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
fpu_control.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fraiseexcpt.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
fsetexcptflg.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ftestexcept.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
get-rounding-mode.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
hypot_advsimd.c aarch64/fpu: Add vector variants of hypot 2024-05-16 14:34:43 +01:00
hypot_sve.c aarch64/fpu: Add vector variants of hypot 2024-05-16 14:34:43 +01:00
hypotf_advsimd.c aarch64/fpu: Add vector variants of hypot 2024-05-16 14:34:43 +01:00
hypotf_sve.c aarch64/fpu: Add vector variants of hypot 2024-05-16 14:34:43 +01:00
log1p_advsimd.c AArch64: Add vector logp1 alias for log1p 2024-09-19 17:53:34 +01:00
log1p_sve.c AArch64: Add vector logp1 alias for log1p 2024-09-19 17:53:34 +01:00
log1pf_advsimd.c AArch64: Improve codegen in users of AdvSIMD log1pf helper 2024-09-23 15:44:07 +01:00
log1pf_sve.c AArch64: Add vector logp1 alias for log1p 2024-09-19 17:53:34 +01:00
log2_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
log2_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
log2f_advsimd.c aarch64: Avoid redundant MOVs in AdvSIMD F32 logs 2024-09-09 13:03:49 +01:00
log2f_sve.c AArch64: Improve codegen in SVE F32 logs 2024-09-23 15:44:07 +01:00
log10_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
log10_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
log10f_advsimd.c aarch64: Avoid redundant MOVs in AdvSIMD F32 logs 2024-09-09 13:03:49 +01:00
log10f_sve.c AArch64: Improve codegen in SVE F32 logs 2024-09-23 15:44:07 +01:00
log_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
log_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
logf_advsimd.c aarch64: Avoid redundant MOVs in AdvSIMD F32 logs 2024-09-09 13:03:49 +01:00
logf_sve.c AArch64: Improve codegen in SVE F32 logs 2024-09-23 15:44:07 +01:00
Makefile aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
math_private.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
math-barriers.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
math-tests-arch.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
math-use-builtins-ceil.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-floor.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-fma.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-fmax.h aarch64: Add math-use-builtins-f{max,min}.h 2021-12-13 10:08:46 -03:00
math-use-builtins-fmin.h aarch64: Add math-use-builtins-f{max,min}.h 2021-12-13 10:08:46 -03:00
math-use-builtins-nearbyint.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-rint.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-round.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-sqrt.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
math-use-builtins-trunc.h math: Decompose math-use-builtins.h 2020-06-22 11:09:45 -03:00
poly_advsimd_f32.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
poly_advsimd_f64.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
poly_generic.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
poly_sve_f32.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
poly_sve_f64.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
poly_sve_generic.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
pow_advsimd.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
pow_sve.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
powf_advsimd.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
powf_sve.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
s_llrint.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_llround.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_lrint.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_lrintf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_lround.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_roundeven.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
s_roundevenf.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sin_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
sin_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sinf_advsimd.c aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR 2024-02-26 09:45:50 -03:00
sinf_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
sinh_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
sinh_sve.c aarch64/fpu: Add vector variants of sinh 2024-04-04 10:33:16 +01:00
sinhf_advsimd.c aarch64/fpu: Add vector variants of sinh 2024-04-04 10:33:16 +01:00
sinhf_sve.c aarch64/fpu: Add vector variants of sinh 2024-04-04 10:33:16 +01:00
sv_erf_data.c aarch64/fpu: Add vector variants of erf 2024-04-04 10:32:48 +01:00
sv_erff_data.c aarch64/fpu: Add vector variants of erf 2024-04-04 10:32:48 +01:00
sv_expf_inline.h AArch64: Improve codegen in SVE expf & related routines 2024-09-23 15:44:07 +01:00
sv_expm1f_inline.h aarch64/fpu: Add vector variants of sinh 2024-04-04 10:33:16 +01:00
sv_log1p_inline.h aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
sv_log1pf_inline.h aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
sv_math.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tan_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
tan_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tanf_advsimd.c aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
tanf_sve.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
tanh_advsimd.c aarch64/fpu: Add vector variants of tanh 2024-04-04 10:33:20 +01:00
tanh_sve.c aarch64/fpu: Add vector variants of tanh 2024-04-04 10:33:20 +01:00
tanhf_advsimd.c aarch64/fpu: Add vector variants of tanh 2024-04-04 10:33:20 +01:00
tanhf_sve.c aarch64/fpu: Add vector variants of tanh 2024-04-04 10:33:20 +01:00
test-double-advsimd-wrappers.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
test-double-advsimd.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-double-sve-wrappers.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
test-double-sve.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-float-advsimd-wrappers.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
test-float-advsimd.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-float-sve-wrappers.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
test-float-sve.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
test-vpcs-vector-wrapper.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
v_exp_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
v_exp_tail_data.c aarch64/fpu: Add vector variants of cosh 2024-04-04 10:32:52 +01:00
v_expf_inline.h aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
v_expm1f_inline.h aarch64: Fix AdvSIMD libmvec routines for big-endian 2024-05-14 13:10:33 +01:00
v_log1p_inline.h aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
v_log1pf_inline.h AArch64: Improve codegen in users of AdvSIMD log1pf helper 2024-09-23 15:44:07 +01:00
v_log2_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
v_log10_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
v_log_data.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
v_math.h aarch64/fpu: Add vector variants of acosh 2024-04-04 10:32:58 +01:00
v_pow_exp_data.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
v_pow_log_data.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
v_powf_data.c aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
vecmath_config.h aarch64/fpu: Add vector variants of pow 2024-05-21 14:38:49 +01:00
Versions AArch64: Add vector logp1 alias for log1p 2024-09-19 17:53:34 +01:00