about summary refs log tree commit diff
path: root/sysdeps/x86_64/multiarch/Makefile
diff options
context:
space:
mode:
authorSunil K Pandey <skpgkp2@gmail.com>2022-08-18 06:48:07 -0700
committerSunil K Pandey <skpgkp2@gmail.com>2022-10-18 13:26:33 -0700
commit451c6e58540e8571e31581c04c4829e5d2cfe8ac (patch)
tree4016d09705d0bee74009c8cb00113296ea9c2ddc /sysdeps/x86_64/multiarch/Makefile
parent932dd83efdce7dbe7c008a27c4eff424a109b3a0 (diff)
downloadglibc-451c6e58540e8571e31581c04c4829e5d2cfe8ac.tar.gz
glibc-451c6e58540e8571e31581c04c4829e5d2cfe8ac.tar.xz
glibc-451c6e58540e8571e31581c04c4829e5d2cfe8ac.zip
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>
Diffstat (limited to 'sysdeps/x86_64/multiarch/Makefile')
-rw-r--r--sysdeps/x86_64/multiarch/Makefile3
1 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
index df4601c294..e974b1ad97 100644
--- a/sysdeps/x86_64/multiarch/Makefile
+++ b/sysdeps/x86_64/multiarch/Makefile
@@ -4,6 +4,7 @@ sysdep_routines += \
   memchr-avx2 \
   memchr-avx2-rtm \
   memchr-evex \
+  memchr-evex512 \
   memchr-evex-rtm \
   memchr-sse2 \
   memcmp-avx2-movbe \
@@ -36,6 +37,7 @@ sysdep_routines += \
   rawmemchr-avx2 \
   rawmemchr-avx2-rtm \
   rawmemchr-evex \
+  rawmemchr-evex512 \
   rawmemchr-evex-rtm \
   rawmemchr-sse2 \
   stpcpy-avx2 \
@@ -156,6 +158,7 @@ sysdep_routines += \
   wmemchr-avx2 \
   wmemchr-avx2-rtm \
   wmemchr-evex \
+  wmemchr-evex512 \
   wmemchr-evex-rtm \
   wmemchr-sse2 \
   wmemcmp-avx2-movbe \