x86_64: Implement evex512 version of memchr, rawmemchr and wmemchr
commit451c6e58540e8571e31581c04c4829e5d2cfe8ac
authorSunil K Pandey <skpgkp2@gmail.com>
Thu, 18 Aug 2022 13:48:07 +0000 (18 06:48 -0700)
committerSunil K Pandey <skpgkp2@gmail.com>
Tue, 18 Oct 2022 20:26:33 +0000 (18 13:26 -0700)
tree4016d09705d0bee74009c8cb00113296ea9c2ddc
parent932dd83efdce7dbe7c008a27c4eff424a109b3a0
x86_64: Implement evex512 version of memchr, rawmemchr and wmemchr

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.

- memchr function using 512 bit vectors.
- rawmemchr function using 512 bit vectors.
- wmemchr function using 512 bit vectors.

Code size data:

memchr-evex.o 762 byte
memchr-evex512.o 576 byte (-24%)

rawmemchr-evex.o 461 byte
rawmemchr-evex512.o 412 byte (-11%)

wmemchr-evex.o 794 byte
wmemchr-evex512.o 552 byte (-30%)

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

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
sysdeps/x86_64/multiarch/Makefile
sysdeps/x86_64/multiarch/ifunc-impl-list.c
sysdeps/x86_64/multiarch/memchr-evex-base.S [new file with mode: 0644]
sysdeps/x86_64/multiarch/memchr-evex512.S [new file with mode: 0644]
sysdeps/x86_64/multiarch/rawmemchr-evex512.S [new file with mode: 0644]
sysdeps/x86_64/multiarch/wmemchr-evex512.S [new file with mode: 0644]