From 451c6e58540e8571e31581c04c4829e5d2cfe8ac Mon Sep 17 00:00:00 2001 From: Sunil K Pandey Date: Thu, 18 Aug 2022 06:48:07 -0700 Subject: 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 --- sysdeps/x86_64/multiarch/wmemchr-evex512.S | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 sysdeps/x86_64/multiarch/wmemchr-evex512.S (limited to 'sysdeps/x86_64/multiarch/wmemchr-evex512.S') 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" -- cgit 1.4.1