diff options
author | Joe Ramsay <Joe.Ramsay@arm.com> | 2024-09-23 15:26:12 +0100 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2024-09-23 15:44:07 +0100 |
commit | 7b8c134b5460ed933d610fa92ed1227372b68fdc (patch) | |
tree | 5af9156b1e7fc6f9a0ed25f5e1a6700cd2e6ad01 /stdlib/strtod_nan_main.c | |
parent | 6f3f6c506cdaf981a4374f1f12863b98ac7fea1a (diff) | |
download | glibc-7b8c134b5460ed933d610fa92ed1227372b68fdc.tar.gz glibc-7b8c134b5460ed933d610fa92ed1227372b68fdc.tar.xz glibc-7b8c134b5460ed933d610fa92ed1227372b68fdc.zip |
AArch64: Improve codegen in SVE expf & related routines
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>
Diffstat (limited to 'stdlib/strtod_nan_main.c')
0 files changed, 0 insertions, 0 deletions