glibc/sysdeps/x86_64/multiarch
Noah Goldstein 80883f4354 x86: Remove AVX str{n}casecmp
The rational is:

1. SSE42 has nearly identical logic so any benefit is minimal (3.4%
   regression on Tigerlake using SSE42 versus AVX across the
   benchtest suite).
2. AVX2 version covers the majority of targets that previously
   prefered it.
3. The targets where AVX would still be best (SnB and IVB) are
   becoming outdated.

All in all the saving the code size is worth it.

All string/memory tests pass.
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>

(cherry picked from commit 305769b2a1)
2022-05-16 18:55:02 -07:00
..
bzero.c x86-64: Optimize bzero 2022-05-05 09:10:53 -07:00
ifunc-avx2.h x86-64: Require BMI2 for strchr-avx2.S 2021-04-19 11:01:45 -07:00
ifunc-evex.h x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04:00
ifunc-impl-list.c x86: Remove AVX str{n}casecmp 2022-05-16 18:55:02 -07:00
ifunc-memcmp.h x86: Optimize memcmp-avx2-movbe.S 2021-05-18 22:57:44 -04:00
ifunc-memmove.h x86-64: Use ZMM16-ZMM31 in AVX512 memmove family functions 2021-03-29 07:40:17 -07:00
ifunc-memset.h x86: Optimize less_vec evex and avx512 memset-vec-unaligned-erms.S 2021-04-19 15:08:04 -07:00
ifunc-sse4_2.h
ifunc-strcasecmp.h x86: Remove AVX str{n}casecmp 2022-05-16 18:55:02 -07:00
ifunc-strcpy.h x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
ifunc-wcslen.h x86-64: Add wcslen optimize for sse4.1 2021-06-23 14:12:36 -04:00
ifunc-wmemset.h x86-64: Use ZMM16-ZMM31 in AVX512 memset family functions 2021-03-29 07:40:17 -07:00
Makefile x86: Remove AVX str{n}casecmp 2022-05-16 18:55:02 -07:00
memchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
memchr-avx2.S x86: Fix overflow bug with wmemchr-sse2 and wmemchr-avx2 [BZ #27974] 2021-06-23 14:13:03 -04: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 x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04:00
memchr-sse2.S
memchr.c x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04: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 x86: Optimize memcmp-avx2-movbe.S 2021-05-18 22:57:44 -04:00
memcmp-evex-movbe.S x86: Optimize L(less_vec) case in memcmp-evex-movbe.S 2022-04-26 18:18:16 -07:00
memcmp-sse2.S
memcmp-sse4.S x86: Shrink memcmp-sse4.S code size 2022-04-26 18:18:16 -07:00
memcmp-ssse3.S
memcmp.c
memcpy_chk-nonshared.S
memcpy_chk.c
memcpy-ssse3-back.S
memcpy-ssse3.S
memcpy.c
memmove_chk-nonshared.S
memmove_chk.c
memmove-avx512-no-vzeroupper.S
memmove-avx512-unaligned-erms.S x86: Optimize memmove-vec-unaligned-erms.S 2022-04-26 18:18:16 -07:00
memmove-avx-unaligned-erms-rtm.S x86: Optimize memmove-vec-unaligned-erms.S 2022-04-26 18:18:16 -07:00
memmove-avx-unaligned-erms.S x86: Optimize memmove-vec-unaligned-erms.S 2022-04-26 18:18:16 -07:00
memmove-evex-unaligned-erms.S x86: Optimize memmove-vec-unaligned-erms.S 2022-04-26 18:18:16 -07:00
memmove-sse2-unaligned-erms.S
memmove-ssse3-back.S
memmove-ssse3.S
memmove-vec-unaligned-erms.S x86: Optimize memmove-vec-unaligned-erms.S 2022-04-26 18:18:16 -07:00
memmove.c
mempcpy_chk-nonshared.S
mempcpy_chk.c
mempcpy.c
memrchr-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
memrchr-avx2.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
memrchr-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
memrchr-sse2.S
memrchr.c
memset_chk-nonshared.S
memset_chk.c
memset-avx2-unaligned-erms-rtm.S x86-64: Optimize bzero 2022-05-05 09:10:53 -07:00
memset-avx2-unaligned-erms.S x86-64: Optimize bzero 2022-05-05 09:10:53 -07:00
memset-avx512-no-vzeroupper.S
memset-avx512-unaligned-erms.S x86-64: Optimize bzero 2022-05-05 09:10:53 -07:00
memset-evex-unaligned-erms.S x86-64: Optimize bzero 2022-05-05 09:10:53 -07:00
memset-sse2-unaligned-erms.S x86-64: Remove bzero weak alias in SS2 memset 2022-05-16 18:52:47 -07:00
memset-vec-unaligned-erms.S x86: Set .text section in memset-vec-unaligned-erms 2022-05-05 09:11:13 -07:00
memset.c
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
rawmemchr-evex-rtm.S x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04:00
rawmemchr-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
rawmemchr-sse2.S
rawmemchr.c x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04:00
stpcpy-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
stpcpy-avx2.S
stpcpy-evex.S x86-64: Add strcpy family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
stpcpy-sse2-unaligned.S
stpcpy-sse2.S
stpcpy-ssse3.S
stpcpy.c
stpncpy-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
stpncpy-avx2.S
stpncpy-c.c
stpncpy-evex.S x86-64: Add strcpy family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
stpncpy-sse2-unaligned.S
stpncpy-ssse3.S
stpncpy.c
strcasecmp_l-avx2-rtm.S x86: Add AVX2 optimized str{n}casecmp 2022-05-16 18:54:41 -07:00
strcasecmp_l-avx2.S x86: Add AVX2 optimized str{n}casecmp 2022-05-16 18:54:41 -07:00
strcasecmp_l-evex.S x86: Add EVEX optimized str{n}casecmp 2022-05-16 18:54:52 -07:00
strcasecmp_l-sse2.S
strcasecmp_l-sse4_2.S
strcasecmp_l-ssse3.S
strcasecmp_l.c
strcasecmp.c
strcat-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strcat-avx2.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strcat-evex.S x86-64: Add strcpy family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strcat-sse2-unaligned.S
strcat-sse2.S
strcat-ssse3.S
strcat.c
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 x86: Code cleanup in strchr-avx2 and comment justifying branch 2022-05-16 18:53:07 -07:00
strchr-evex.S x86: Code cleanup in strchr-evex and comment justifying branch 2022-05-16 18:53:19 -07:00
strchr-sse2-no-bsf.S
strchr-sse2.S
strchr.c x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07: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
strchrnul-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strchrnul-sse2.S
strchrnul.c
strcmp-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strcmp-avx2.S x86: Add AVX2 optimized str{n}casecmp 2022-05-16 18:54:41 -07:00
strcmp-evex.S x86: Add EVEX optimized str{n}casecmp 2022-05-16 18:54:52 -07:00
strcmp-sse2-unaligned.S
strcmp-sse2.S
strcmp-sse4_2.S
strcmp-sse42.S x86: Remove AVX str{n}casecmp 2022-05-16 18:55:02 -07:00
strcmp-ssse3.S
strcmp.c x86-64: Remove Prefer_AVX2_STRCMP 2022-04-26 18:18:16 -07:00
strcpy-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strcpy-avx2.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strcpy-evex.S x86-64: Add strcpy family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strcpy-sse2-unaligned.S
strcpy-sse2.S
strcpy-ssse3.S
strcpy.c
strcspn-c.c x86: Optimize strcspn and strpbrk in strcspn-c.c 2022-05-16 18:53:28 -07:00
strcspn-sse2.c x86: Remove strcspn-sse2.S and use the generic implementation 2022-05-16 18:53:48 -07:00
strcspn.c
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 x86: Fix overflow bug in wcsnlen-sse4_1 and wcsnlen-avx2 [BZ #27974] 2021-06-23 14:13:06 -04:00
strlen-evex.S x86: Optimize strlen-evex.S 2021-04-19 18:03:49 -07:00
strlen-sse2.S x86-64: Move strlen.S to multiarch/strlen-vec.S 2021-06-23 10:24:35 -07:00
strlen-vec.S x86: Remove unnecessary overflow check from wcsnlen-sse4_1.S 2021-06-24 19:14:19 -04:00
strlen.c
strncase_l-avx2-rtm.S x86: Add AVX2 optimized str{n}casecmp 2022-05-16 18:54:41 -07:00
strncase_l-avx2.S x86: Add AVX2 optimized str{n}casecmp 2022-05-16 18:54:41 -07:00
strncase_l-evex.S x86: Add EVEX optimized str{n}casecmp 2022-05-16 18:54:52 -07:00
strncase_l-sse2.S
strncase_l-sse4_2.S
strncase_l-ssse3.S
strncase_l.c
strncase.c
strncat-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strncat-avx2.S
strncat-c.c
strncat-evex.S x86-64: Add strcpy family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strncat-sse2-unaligned.S
strncat-ssse3.S
strncat.c
strncmp-avx2-rtm.S x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] 2022-02-18 14:59:47 -08:00
strncmp-avx2.S x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] 2022-02-18 14:59:47 -08:00
strncmp-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strncmp-sse2.S
strncmp-sse4_2.S
strncmp-ssse3.S
strncmp.c x86-64: Remove Prefer_AVX2_STRCMP 2022-04-26 18:18:16 -07:00
strncpy-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strncpy-avx2.S
strncpy-c.c
strncpy-evex.S x86-64: Add strcpy family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strncpy-sse2-unaligned.S
strncpy-ssse3.S
strncpy.c
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
strnlen-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strnlen-sse2.S
strnlen.c
strpbrk-c.c
strpbrk-sse2.c x86: Remove strpbrk-sse2.S and use the generic implementation 2022-05-16 18:53:59 -07:00
strpbrk.c
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 x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
strrchr-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
strrchr-sse2.S
strrchr.c
strspn-c.c x86: Optimize strspn in strspn-c.c 2022-05-16 18:53:39 -07:00
strspn-sse2.c x86: Remove strspn-sse2.S and use the generic implementation 2022-05-16 18:54:09 -07:00
strspn.c
strstr-sse2-unaligned.S
strstr.c
varshift.c
varshift.h
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
wcschr-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wcschr-sse2.S
wcschr.c
wcscmp-avx2-rtm.S x86-64: Add AVX optimized string/memory functions for RTM 2021-03-29 07:40:17 -07:00
wcscmp-avx2.S
wcscmp-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wcscmp-sse2.S
wcscmp.c
wcscpy-c.c
wcscpy-ssse3.S
wcscpy.c
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
wcslen-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wcslen-sse2.S
wcslen-sse4_1.S x86-64: Add wcslen optimize for sse4.1 2021-06-23 14:12:36 -04:00
wcslen.c x86-64: Add wcslen optimize for sse4.1 2021-06-23 14:12:36 -04:00
wcsncmp-avx2-rtm.S x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] 2022-02-18 14:59:47 -08:00
wcsncmp-avx2.S x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case [BZ #28896] 2022-02-18 14:59:47 -08:00
wcsncmp-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wcsncmp-sse2.c
wcsncmp.c
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
wcsnlen-c.c
wcsnlen-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wcsnlen-sse4_1.S x86-64: Move strlen.S to multiarch/strlen-vec.S 2021-06-23 10:24:35 -07:00
wcsnlen.c x86-64: Add wcslen optimize for sse4.1 2021-06-23 14:12:36 -04: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
wcsrchr-evex.S x86-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wcsrchr-sse2.S
wcsrchr.c
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
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-64: Add ifunc-avx2.h functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wmemchr-sse2.S
wmemchr.c x86: Add EVEX optimized memchr family not safe for RTM 2021-05-08 16:26:30 -04: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
wmemcmp-c.c
wmemcmp-evex-movbe.S x86-64: Add memcmp family functions with 256-bit EVEX 2021-03-29 07:40:17 -07:00
wmemcmp-sse4.S
wmemcmp-ssse3.S
wmemcmp.c
wmemset_chk-nonshared.S
wmemset_chk.c
wmemset.c