glibc/sysdeps/x86_64/multiarch
Noah Goldstein 483443d321 x86/string: Fixup alignment of main loop in str{n}cmp-evex [BZ #32212]
The loop should be aligned to 32-bytes so that it can ideally run out
the DSB. This is particularly important on Skylake-Server where
deficiencies in it's DSB implementation make it prone to not being
able to run loops out of the DSB.

For example running strcmp-evex on 200Mb string:

32-byte aligned loop:
    - 43,399,578,766      idq.dsb_uops
not 32-byte aligned loop:
    - 6,060,139,704       idq.dsb_uops

This results in a 25% performance degradation for the non-aligned
version.

The fix is to just ensure the code layout is such that the loop is
aligned. (Which was previously the case but was accidentally dropped
in 84e7c46df).

NB: The fix was actually 64-byte alignment. This is because 64-byte
alignment generally produces more stable performance than 32-byte
aligned code (cache line crosses can affect perf), so if we are going
past 16-byte alignmnent, might as well go to 64. 64-byte alignment
also matches most other functions we over-align, so it creates a
common point of optimization.

Times are reported as ratio of Time_With_Patch /
Time_Without_Patch. Lower is better.

The values being reported is the geometric mean of the ratio across
all tests in bench-strcmp and bench-strncmp.

Note this patch is only attempting to improve the Skylake-Server
strcmp for long strings. The rest of the numbers are only to test for
regressions.

Tigerlake Results Strings <= 512:
    strcmp : 1.026
    strncmp: 0.949

Tigerlake Results Strings > 512:
    strcmp : 0.994
    strncmp: 0.998

Skylake-Server Results Strings <= 512:
    strcmp : 0.945
    strncmp: 0.943

Skylake-Server Results Strings > 512:
    strcmp : 0.778
    strncmp: 1.000

The 2.6% regression on TGL-strcmp is due to slowdowns caused by
changes in alignment of code handling small sizes (most on the
page-cross logic). These should be safe to ignore because 1) We
previously only 16-byte aligned the function so this behavior is not
new and was essentially up to chance before this patch and 2) this
type of alignment related regression on small sizes really only comes
up in tight micro-benchmark loops and is unlikely to have any affect
on realworld performance.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2024-09-30 07:40:40 -07:00
..
scripts Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
dl-symbol-redir-ifunc.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-avx2.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-evex.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-impl-list.c x86_64: Remove avx512 strstr implementation 2024-03-27 13:48:16 -03:00
ifunc-memcmp.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-memcmpeq.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-memmove.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-memset.h x86: Add Avoid_STOSB tunable to allow NT memset without ERMS 2024-08-15 08:19:15 -07:00
ifunc-sse4_2.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-strcasecmp.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-strcpy.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-strncpy.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-wcs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-wcslen.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
ifunc-wmemset.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
Makefile x86_64: Remove avx512 strstr implementation 2024-03-27 13:48:16 -03:00
memchr-avx2-rtm.S x86: Shrink code size of memchr-avx2.S 2022-06-07 13:10:31 -07:00
memchr-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memchr-evex512.S x86_64: Implement evex512 version of memchr, rawmemchr and wmemchr 2022-10-18 13:26:33 -07:00
memchr-evex-base.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memchr-evex-rtm.S x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04:00
memchr-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memchr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmp-avx2-movbe-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
memcmp-avx2-movbe.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmp-evex-movbe.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmp-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmpeq-avx2-rtm.S x86_64: Add avx2 optimized __memcmpeq in memcmpeq-avx2.S 2021-10-27 13:03:46 -05:00
memcmpeq-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmpeq-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmpeq-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcmpeq.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcpy_chk-nonshared.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcpy_chk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove_chk-nonshared.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove_chk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove-avx512-no-vzeroupper.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove-avx512-unaligned-erms.S x86: Update memmove to use new VEC macros 2022-10-14 21:21:58 -07:00
memmove-avx-unaligned-erms-rtm.S x86: Update memmove to use new VEC macros 2022-10-14 21:21:58 -07:00
memmove-avx-unaligned-erms.S x86: Update memmove to use new VEC macros 2022-10-14 21:21:58 -07:00
memmove-erms.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove-evex-unaligned-erms.S x86: Update memmove to use new VEC macros 2022-10-14 21:21:58 -07:00
memmove-shlib-compat.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove-sse2-unaligned-erms.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove-ssse3.S x86_64: Optimize large size copy in memmove-ssse3 2024-06-30 06:26:43 -07:00
memmove-vec-unaligned-erms.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memmove.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mempcpy_chk-nonshared.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mempcpy_chk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
mempcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memrchr-avx2-rtm.S x86: Optimize memrchr-avx2.S 2022-06-07 13:10:27 -07:00
memrchr-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memrchr-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memrchr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memrchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset_chk-nonshared.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset_chk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset-avx2-unaligned-erms-rtm.S x86: Update memset to use new VEC macros 2022-10-14 21:21:58 -07:00
memset-avx2-unaligned-erms.S x86: Update memset to use new VEC macros 2022-10-14 21:21:58 -07:00
memset-avx512-no-vzeroupper.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset-avx512-unaligned-erms.S x86: Update memset to use new VEC macros 2022-10-14 21:21:58 -07:00
memset-erms.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset-evex-unaligned-erms.S x86: Update memset to use new VEC macros 2022-10-14 21:21:58 -07:00
memset-sse2-unaligned-erms.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
memset-vec-unaligned-erms.S x86: Add seperate non-temporal tunable for memset 2024-05-30 12:36:09 -05:00
memset.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rawmemchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
rawmemchr-avx2.S x86: Add support for compiling {raw|w}memchr with high ISA level 2022-06-22 19:41:35 -07:00
rawmemchr-evex512.S x86_64: Implement evex512 version of memchr, rawmemchr and wmemchr 2022-10-18 13:26:33 -07:00
rawmemchr-evex-rtm.S x86: Optimize memchr-evex.S and implement with VMM headers 2022-10-19 17:31:03 -07:00
rawmemchr-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rawmemchr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rawmemchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
reg-macros.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-memchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-memcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-memcmpeq.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-memmove.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-memset.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-rawmemchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-stpcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-stpncpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strchr.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strchrnul.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strcmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strcpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strcspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strlen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strncmp.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strncpy.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
rtld-strnlen.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stpcpy-avx2-rtm.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
stpcpy-avx2.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
stpcpy-evex.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
stpcpy-sse2-unaligned.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
stpcpy-sse2.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
stpcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
stpncpy-avx2-rtm.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
stpncpy-avx2.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
stpncpy-evex.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-evex functions 2022-11-08 19:22:33 -08:00
stpncpy-sse2-unaligned.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.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp_l-avx2-rtm.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strcasecmp_l-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp_l-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp_l-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp_l-sse4_2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcasecmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcat-avx2-rtm.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
strcat-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcat-evex.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-evex functions 2022-11-08 19:22:33 -08:00
strcat-sse2-unaligned.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcat-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcat-strlen-avx2.h.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcat-strlen-evex.h.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strchr-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr-evex512.S x86_64: Implement evex512 version of strchrnul, strchr and wcschr 2022-10-25 22:39:35 -07:00
strchr-evex-base.S x86: Fix bug in strchrnul-evex512 [BZ #32078] 2024-08-15 08:11:33 -07:00
strchr-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr-sse2-no-bsf.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchrnul-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strchrnul-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strchrnul-evex512.S x86_64: Implement evex512 version of strchrnul, strchr and wcschr 2022-10-25 22:39:35 -07:00
strchrnul-evex.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strchrnul-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strchrnul.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp-avx2-rtm.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strcmp-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp-evex.S x86/string: Fixup alignment of main loop in str{n}cmp-evex [BZ #32212] 2024-09-30 07:40:40 -07:00
strcmp-naming.h x86: Move strcmp SSE2 implementation to multiarch/strcmp-sse2.S 2022-07-13 14:55:31 -07:00
strcmp-sse2-unaligned.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp-sse4_2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy-avx2-rtm.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
strcpy-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy-sse2-unaligned.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcspn-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcspn-sse4.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strcspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strlen-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strlen-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strlen-evex512.S x86: Update strlen-evex-base to use new reg/vec macros. 2022-10-14 21:21:58 -07:00
strlen-evex-base.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strlen-evex.S x86: Unifies 'strlen-evex' and 'strlen-evex512' implementations. 2023-12-18 12:38:01 -06:00
strlen-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase_l-avx2-rtm.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncase_l-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase_l-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase_l-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase_l-sse4_2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase_l.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncase.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncat-avx2-rtm.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
strncat-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncat-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncat-sse2-unaligned.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strncat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncmp-avx2-rtm.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncmp-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncmp-evex.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strncmp-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncmp-sse4_2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncpy-avx2-rtm.S x86: Optimize and shrink st{r|p}{n}{cat|cpy}-avx2 functions 2022-11-08 19:22:33 -08:00
strncpy-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncpy-evex.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncpy-or-cat-overflow-def.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strncpy-sse2-unaligned.S x86: Add support to build st{p|r}{n}{cpy|cat} with explicit ISA level 2022-07-16 03:07:59 -07:00
strncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strnlen-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strnlen-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
strnlen-evex512.S x86: Unifies 'strnlen-evex' and 'strnlen-evex512' implementations. 2024-08-19 07:34:02 -07:00
strnlen-evex-base.S x86: Unifies 'strnlen-evex' and 'strnlen-evex512' implementations. 2024-08-19 07:34:02 -07:00
strnlen-evex.S x86: Unifies 'strnlen-evex' and 'strnlen-evex512' implementations. 2024-08-19 07:34:02 -07:00
strnlen-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strnlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strpbrk-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strpbrk-sse4.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strpbrk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strrchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strrchr-avx2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strrchr-evex512.S x86_64: Implement evex512 version of strrchr and wcsrchr 2022-11-03 15:51:52 -07:00
strrchr-evex-base.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strrchr-evex.S x86: Prepare strrchr-evex and strrchr-evex512 for AVX10 2023-10-06 00:18:55 -05:00
strrchr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strrchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strspn-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strspn-sse4.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strspn.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strstr-sse2-unaligned.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
strstr.c x86_64: Remove avx512 strstr implementation 2024-03-27 13:48:16 -03:00
varshift.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
varshift.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpcpy-avx2.S x86: Add avx2 optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcpcpy-evex.S x86: Add evex optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcpcpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpcpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpncpy-avx2.S x86: Add avx2 optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcpncpy-evex.S x86: Add evex optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcpncpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcpncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscat-avx2.S x86: Add avx2 optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcscat-evex.S x86: Add evex optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcscat-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcschr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wcschr-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcschr-evex512.S x86_64: Implement evex512 version of strchrnul, strchr and wcschr 2022-10-25 22:39:35 -07:00
wcschr-evex.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcschr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcschr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscmp-avx2-rtm.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcscmp-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcscmp-evex.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcscmp-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscpy-avx2.S x86: Add avx2 optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcscpy-evex.S x86: Add evex optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcscpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscpy-ssse3.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcscpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcslen-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wcslen-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcslen-evex512.S x86: Unifies 'strlen-evex' and 'strlen-evex512' implementations. 2023-12-18 12:38:01 -06:00
wcslen-evex.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcslen-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcslen-sse4_1.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcslen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncat-avx2.S x86: Add avx2 optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcsncat-evex.S x86_64: Fix missing wcsncat function definition without multiarch (x86-64-v4) 2024-05-08 07:37:59 -07:00
wcsncat-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncat.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncmp-avx2-rtm.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsncmp-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsncmp-evex.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsncmp-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncpy-avx2.S x86: Add avx2 optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcsncpy-evex.S x86: Add evex optimized functions for the wchar_t strcpy family 2022-11-08 19:22:33 -08:00
wcsncpy-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsncpy.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsnlen-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wcsnlen-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsnlen-evex512.S x86: Unifies 'strlen-evex' and 'strlen-evex512' implementations. 2023-12-18 12:38:01 -06:00
wcsnlen-evex.S x86: Optimize strnlen-evex.S and implement with VMM headers 2022-10-19 17:31:03 -07:00
wcsnlen-generic.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsnlen-sse4_1.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsnlen.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsrchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wcsrchr-avx2.S x86: Add support to build strcmp/strlen/strchr with explicit ISA level 2022-07-16 03:07:59 -07:00
wcsrchr-evex512.S x86_64: Implement evex512 version of strrchr and wcsrchr 2022-11-03 15:51:52 -07:00
wcsrchr-evex.S x86: Prepare strrchr-evex and strrchr-evex512 for AVX10 2023-10-06 00:18:55 -05:00
wcsrchr-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wcsrchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wmemchr-avx2.S x86: Add support for compiling {raw|w}memchr with high ISA level 2022-06-22 19:41:35 -07:00
wmemchr-evex512.S x86_64: Implement evex512 version of memchr, rawmemchr and wmemchr 2022-10-18 13:26:33 -07:00
wmemchr-evex-rtm.S x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04:00
wmemchr-evex.S x86: Add support for compiling {raw|w}memchr with high ISA level 2022-06-22 19:41:35 -07:00
wmemchr-sse2.S x86: Add support for compiling {raw|w}memchr with high ISA level 2022-06-22 19:41:35 -07:00
wmemchr.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemcmp-avx2-movbe-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wmemcmp-avx2-movbe.S x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
wmemcmp-evex-movbe.S x86: Add support for building {w}memcmp{eq} with explicit ISA level 2022-07-05 16:42:42 -07:00
wmemcmp-sse2.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemcmp.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemset_chk-nonshared.S Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemset_chk.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
wmemset.c Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-avx-rtm-vecs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-avx-vecs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-evex256-vecs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-evex512-vecs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-evex-vecs-common.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-sse2-vecs.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00
x86-vec-macros.h Update copyright dates with scripts/update-copyrights 2024-01-01 10:53:40 -08:00