diff options
author | Sunil K Pandey <skpgkp2@gmail.com> | 2022-08-18 06:48:07 -0700 |
---|---|---|
committer | Sunil K Pandey <skpgkp2@gmail.com> | 2022-10-18 13:26:33 -0700 |
commit | 451c6e58540e8571e31581c04c4829e5d2cfe8ac (patch) | |
tree | 4016d09705d0bee74009c8cb00113296ea9c2ddc /sysdeps/x86_64/multiarch/wmemchr-evex512.S | |
parent | 932dd83efdce7dbe7c008a27c4eff424a109b3a0 (diff) | |
download | glibc-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/wmemchr-evex512.S')
-rw-r--r-- | sysdeps/x86_64/multiarch/wmemchr-evex512.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sysdeps/x86_64/multiarch/wmemchr-evex512.S b/sysdeps/x86_64/multiarch/wmemchr-evex512.S new file mode 100644 index 0000000000..78ec4ee5ad --- /dev/null +++ b/sysdeps/x86_64/multiarch/wmemchr-evex512.S @@ -0,0 +1,9 @@ +#ifndef WMEMCHR +# define WMEMCHR __wmemchr_evex512 +#endif + +#define MEMCHR WMEMCHR +#define USE_AS_WMEMCHR 1 + +#define USE_WIDE_CHAR 1 +#include "memchr-evex512.S" |