glibc/sysdeps/aarch64/multiarch
Wilco Dijkstra f46ef33ad1 AArch64: Improve strlen_asimd performance (bug 25824)
Optimize strlen using a mix of scalar and SIMD code.  On modern micro
architectures large strings are 2.6 times faster than existing
strlen_asimd and 35% faster than the new MTE version of strlen.

On a random strlen benchmark using small sizes the speedup is 7% vs
strlen_asimd and 40% vs the MTE strlen.  This fixes the main strlen
regressions on Cortex-A53 and other cores with a simple Neon unit.

Rename __strlen_generic to __strlen_mte, and select strlen_asimd when
MTE is not enabled (this is waiting on support for a HWCAP_MTE bit).

This fixes big-endian bug 25824. Passes GLIBC regression tests.

Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
2020-07-17 15:07:23 +01:00
..
ifunc-impl-list.c AArch64: Improve strlen_asimd performance (bug 25824) 2020-07-17 15:07:23 +01:00
init-arch.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile AArch64: Improve strlen_asimd performance (bug 25824) 2020-07-17 15:07:23 +01:00
memchr_generic.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memchr_nosimd.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memchr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcpy_advsimd.S AArch64: Add optimized Q-register memcpy 2020-07-15 16:55:07 +01:00
memcpy_falkor.S AArch64: Merge Falkor memcpy and memmove implementations 2020-06-08 14:13:05 +01:00
memcpy_generic.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcpy_thunderx2.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcpy_thunderx.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memcpy.c AArch64: Rename IS_ARES to IS_NEOVERSE_N1 2020-07-15 16:58:07 +01:00
memmove.c AArch64: Rename IS_ARES to IS_NEOVERSE_N1 2020-07-15 16:58:07 +01:00
memset_base64.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memset_emag.S aarch64: Add BTI support to assembly files 2020-07-08 15:02:37 +01:00
memset_falkor.S aarch64: Add BTI support to assembly files 2020-07-08 15:02:37 +01:00
memset_generic.S aarch64: Add BTI support to assembly files 2020-07-08 15:02:37 +01:00
memset_kunpeng.S Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
memset.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
rtld-memset.S aarch64: Add BTI support to assembly files 2020-07-08 15:02:37 +01:00
strlen_asimd.S AArch64: Improve strlen_asimd performance (bug 25824) 2020-07-17 15:07:23 +01:00
strlen_mte.S AArch64: Improve strlen_asimd performance (bug 25824) 2020-07-17 15:07:23 +01:00
strlen.c AArch64: Improve strlen_asimd performance (bug 25824) 2020-07-17 15:07:23 +01:00