glibc/sysdeps/x86_64
Sunil K Pandey 59e501f204 x86_64: Implement evex512 version of strchrnul, strchr and wcschr
This patch implements following evex512 version of string functions.
evex512 version takes up to 30% less cycle as compared to evex,
depending on length and alignment.

- strchrnul function using 512 bit vectors.
- strchr function using 512 bit vectors.
- wcschr function using 512 bit vectors.

Code size data:

strchrnul-evex.o	599 byte
strchrnul-evex512.o	569 byte (-5%)

strchr-evex.o		639 byte
strchr-evex512.o	595 byte (-7%)

wcschr-evex.o		644 byte
wcschr-evex512.o	607 byte (-6%)

Placeholder function, not used by any processor at the moment.

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
2022-10-25 22:39:35 -07:00
..
64
fpu x86: Remove .tfloat usage 2022-10-03 14:03:21 -03:00
multiarch x86_64: Implement evex512 version of strchrnul, strchr and wcschr 2022-10-25 22:39:35 -07:00
nptl x86: Cleanup pthread_spin_{try}lock.S 2022-10-03 14:13:49 -07:00
x32 x86-64: Move LP_SIZE definition to its own header 2022-10-18 17:02:08 +02:00
____longjmp_chk.S
__longjmp.S Introduce <pointer_guard.h>, extracted from <sysdep.h> 2022-10-18 17:03:55 +02:00
_mcount.S
abort-instr.h
add_n.S
addmul_1.S
bsd-_setjmp.S
bsd-setjmp.S
configure
configure.ac
crti.S
crtn.S
dl-hwcaps-subdirs.c
dl-irel.h
dl-machine.h x86-64: Only define used SSE/AVX/AVX512 run-time resolvers 2022-06-27 14:17:52 -07:00
dl-procinfo.c
dl-runtime.h
dl-tls.c
dl-tls.h
dl-tlsdesc.h
dl-tlsdesc.S
dl-trampoline.h x86-64: Small improvements to dl-trampoline.S 2022-06-29 19:47:52 -07:00
dl-trampoline.S x86-64: Small improvements to dl-trampoline.S 2022-06-29 19:47:52 -07:00
ffs.c
ffsll.c
ifuncmain8.c
ifuncmod8.c
Implies
isa-default-impl.h
isa.h
jmpbuf-offsets.h
jmpbuf-unwind.h Use PTR_MANGLE and PTR_DEMANGLE unconditionally in C sources 2022-10-18 17:04:10 +02:00
l10nflist.c
link-defines.sym
locale-defines.sym
localplt.data
lshift.S
machine-gmon.h
Makefile x86_64: Remove platform directory library loading test 2022-10-06 07:59:48 -03:00
memchr.S
memcmp-isa-default-impl.h x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
memcmp.S x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
memcmpeq.S x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
memcpy_chk.S
memcpy.S
memmove_chk.S
memmove.S x86: Add support for building {w}memmove{_chk} with explicit ISA level 2022-07-05 16:42:42 -07:00
mempcpy_chk.S
mempcpy.S
memrchr.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
memset_chk.S
memset.S x86: Add support for building {w}memset{_chk} with explicit ISA level 2022-07-05 16:42:42 -07:00
mp_clz_tab.c
mul_1.S
preconfigure
preconfigure.ac
rawmemchr.S
rshift.S
rtld-offsets.sym
setjmp.S Introduce <pointer_guard.h>, extracted from <sysdep.h> 2022-10-18 17:03:55 +02:00
stackguard-macros.h
stackinfo.h nptl: x86_64: Use same code for CURRENT_STACK_FRAME and stackinfo_get_sp 2022-08-31 09:04:27 -03:00
start.S
stpcpy.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
stpncpy.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strcasecmp_l-nonascii.c
strcasecmp_l.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strcasecmp.S
strcat.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strchr-isa-default-impl.h x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strchr.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strchrnul.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strcmp.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strcpy.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strcspn-generic.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
strcspn.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
strlen.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncase_l-nonascii.c
strncase_l.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncase.S
strncat.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strncmp.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncpy.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strnlen.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strpbrk-generic.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
strpbrk.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
strrchr.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strspn-generic.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
strspn.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
sub_n.S
submul_1.S
sysdep.h x86-64: Move LP_SIZE definition to its own header 2022-10-18 17:02:08 +02:00
tls_get_addr.S
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-tls-1.c
varshift.c x86: Add support for building str{c|p}{brk|spn} with explicit ISA level 2022-07-05 16:42:42 -07:00
Versions
wcschr.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcscmp.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcscpy-generic.c x86: Add support to build wcscpy with explicit ISA level 2022-07-16 03:07:59 -07:00
wcscpy.S x86: Add support to build wcscpy with explicit ISA level 2022-07-16 03:07:59 -07:00
wcslen.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsncmp-generic.c x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsncmp.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsnlen-generic.c x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsnlen.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsrchr.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wmemchr.S
wmemcmp.S x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
wmemset_chk.S
wmemset.S
wordcopy.c
x86-lp_size.h x86-64: Move LP_SIZE definition to its own header 2022-10-18 17:02:08 +02:00