aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/aarch64/fpu/coshf_sve.c
AgeCommit message (Collapse)AuthorFilesLines
2025-03-18AArch64: Optimize algorithm in users of SVE expf helperPierre Blanchard1-3/+3
Polynomial order was unnecessarily high, unlocking multiple optimizations. Max error for new SVE expf is 0.88 +0.5ULP. Max error for new SVE coshf is 2.56 +0.5ULP. Performance improvement on Neoverse V1: expf (30%), coshf (26%). Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2025-01-01Update copyright dates with scripts/update-copyrightsPaul Eggert1-1/+1
2024-09-23AArch64: Improve codegen in SVE expf & related routinesJoe Ramsay1-15/+20
Reduce MOV and MOVPRFX by improving special-case handling. Use inline helper to duplicate the entire computation between the special- and non-special case branches, removing the contention for z0 between x and the return value. Also rearrange some MLAs and MLSs - by making the multiplicand the destination we can avoid a MOVPRFX in several cases. Also change which constants go in the vector used for lanewise ops - the last lane is no longer wasted. Spotted that shift was incorrect in exp2f and exp10f, w.r.t. to the comment that explains it. Fixed - worst-case ULP for exp2f moves around but it doesn't change significantly for either routine. Worst-case error for coshf increases due to passing x to exp rather than abs(x) - updated the comment, but does not require regen-ulps. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
2024-04-04aarch64/fpu: Add vector variants of coshJoe Ramsay1-0/+59
Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>