mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-03 02:11:08 +00:00
f46ef33ad1
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> |
||
---|---|---|
.. | ||
ifunc-impl-list.c | ||
init-arch.h | ||
Makefile | ||
memchr_generic.S | ||
memchr_nosimd.S | ||
memchr.c | ||
memcpy_advsimd.S | ||
memcpy_falkor.S | ||
memcpy_generic.S | ||
memcpy_thunderx2.S | ||
memcpy_thunderx.S | ||
memcpy.c | ||
memmove.c | ||
memset_base64.S | ||
memset_emag.S | ||
memset_falkor.S | ||
memset_generic.S | ||
memset_kunpeng.S | ||
memset.c | ||
rtld-memset.S | ||
strlen_asimd.S | ||
strlen_mte.S | ||
strlen.c |