mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-02 01:40:07 +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>
8 lines
263 B
Makefile
8 lines
263 B
Makefile
ifeq ($(subdir),string)
|
|
sysdep_routines += memcpy_generic memcpy_advsimd memcpy_thunderx memcpy_thunderx2 \
|
|
memcpy_falkor \
|
|
memset_generic memset_falkor memset_emag memset_kunpeng \
|
|
memchr_generic memchr_nosimd \
|
|
strlen_mte strlen_asimd
|
|
endif
|