glibc/sysdeps/x86_64
Noah Goldstein 0ae1006967 x86: Optimize strcspn and strpbrk in strcspn-c.c
Use _mm_cmpeq_epi8 and _mm_movemask_epi8 to get strlen instead of
_mm_cmpistri. Also change offset to unsigned to avoid unnecessary
sign extensions.

geometric_mean(N=20) of all benchmarks that dont fallback on
sse2/strlen; New / Original: .928

All string/memory tests pass.
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>

(cherry picked from commit 30d627d477)
2022-05-16 18:53:28 -07:00
..
64
fpu x86-64: Optimize load of all bits set into ZMM register [BZ #28252] 2022-04-26 18:18:15 -07:00
multiarch x86: Optimize strcspn and strpbrk in strcspn-c.c 2022-05-16 18:53:28 -07:00
nptl
x32
____longjmp_chk.S
__longjmp.S
_mcount.S
abort-instr.h
add_n.S
addmul_1.S
bsd-_setjmp.S
bsd-setjmp.S
bzero.S
configure
configure.ac
crti.S
crtn.S
dl-hwcaps-subdirs.c
dl-irel.h
dl-machine.h elf: Fix dynamic-link.h usage on rtld.c 2022-04-08 14:18:11 -04:00
dl-procinfo.c
dl-runtime.h elf: Add _dl_audit_pltexit 2022-04-08 14:18:12 -04:00
dl-tls.c
dl-tls.h
dl-tlsdesc.h
dl-tlsdesc.S
dl-trampoline.h elf: Add _dl_audit_pltexit 2022-04-08 14:18:12 -04:00
dl-trampoline.S
ffs.c
ffsll.c
htonl.S
ifuncmain8.c
ifuncmod8.c
Implies
isa.h
jmpbuf-offsets.h
jmpbuf-unwind.h
l10nflist.c
link-defines.sym
locale-defines.sym
localplt.data
lshift.S
machine-gmon.h
Makefile
memchr.S
memcmp.S
memcpy_chk.S
memcpy.S
memmove_chk.S
memmove.S x86: Optimize memmove-vec-unaligned-erms.S 2022-04-26 18:18:16 -07:00
mempcpy_chk.S
mempcpy.S
memrchr.S
memset_chk.S
memset.S x86-64: Optimize bzero 2022-05-05 09:10:53 -07:00
memusage.h
mp_clz_tab.c
mul_1.S
preconfigure
preconfigure.ac
rawmemchr.S
rshift.S
rtld-offsets.sym
setjmp.S
stackguard-macros.h
stackinfo.h
start.S
stpcpy.S
strcasecmp_l-nonascii.c
strcasecmp_l.S
strcasecmp.S
strcat.S
strchr.S
strchrnul.S
strcmp.S x86-64: Replace movzx with movzbl 2022-04-26 18:18:16 -07:00
strcpy.S
strcspn.S
strlen.S
strncase_l-nonascii.c
strncase_l.S
strncase.S
strncmp.S
strnlen.S
strpbrk.S
strrchr.S
strspn.S
sub_n.S
submul_1.S
sysdep.h
tls_get_addr.S
tls-macros.h
tlsdesc.c
tlsdesc.sym
tst-audit3.c
tst-audit4-aux.c
tst-audit4.c
tst-audit5.c
tst-audit6.c
tst-audit7.c
tst-audit10-aux.c
tst-audit10.c
tst-audit.h
tst-auditmod3a.c
tst-auditmod3b.c
tst-auditmod4a.c
tst-auditmod4b.c
tst-auditmod5a.c
tst-auditmod5b.c
tst-auditmod6a.c
tst-auditmod6b.c
tst-auditmod6c.c
tst-auditmod7a.c
tst-auditmod7b.c
tst-auditmod10a.c
tst-auditmod10b.c
tst-avx512-aux.c
tst-avx512.c
tst-avx512mod.c
tst-avx-aux.c
tst-avx.c
tst-avxmod.c
tst-glibc-hwcaps.c
tst-platform-1.c
tst-platformmod-1.c
tst-platformmod-2.c
tst-quad1.c
tst-quad1pie.c
tst-quad2.c
tst-quad2pie.c
tst-quadmod1.S
tst-quadmod1pie.S
tst-quadmod2.S
tst-quadmod2pie.S
tst-rsi-strlen.c
tst-rsi-wcslen.c
tst-split-dynreloc.c
tst-split-dynreloc.lds
tst-sse.c
tst-ssemod.c
tst-x86_64-1.c
tst-x86_64mod-1.c
tst-x86-64-tls-1.c
Versions
wcschr.S
wcscmp.S
wcslen.S
wcsrchr.S
wmemset_chk.S
wmemset.S
wordcopy.c