On Sun, Feb 6, 2022 at 6:52 AM H.J. Lu via Libc-alpha wrote: > > On Sat, Feb 5, 2022 at 4:29 PM H.J. Lu wrote: > > > > --- > > sysdeps/x86_64/multiarch/Makefile | 290 ++++++++++++++++++------------ > > 1 file changed, 176 insertions(+), 114 deletions(-) > > > > diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile > > index 044778585b..4274bfdd0d 100644 > > --- a/sysdeps/x86_64/multiarch/Makefile > > +++ b/sysdeps/x86_64/multiarch/Makefile > > @@ -1,89 +1,133 @@ > > ifeq ($(subdir),string) > > > > -sysdep_routines += strncat-c stpncpy-c strncpy-c \ > > - strcmp-sse2 strcmp-sse2-unaligned strcmp-ssse3 \ > > - strcmp-sse4_2 strcmp-avx2 \ > > - strncmp-sse2 strncmp-ssse3 strncmp-sse4_2 strncmp-avx2 \ > > - memchr-sse2 rawmemchr-sse2 memchr-avx2 rawmemchr-avx2 \ > > - memrchr-sse2 memrchr-avx2 \ > > - memcmp-sse2 \ > > - memcmpeq-sse2 \ > > - memcmp-avx2-movbe \ > > - memcmpeq-avx2 \ > > - memcmp-sse4 memcpy-ssse3 \ > > - memmove-ssse3 \ > > - memcpy-ssse3-back \ > > - memmove-ssse3-back \ > > - memmove-avx512-no-vzeroupper \ > > - strcasecmp_l-sse2 strcasecmp_l-ssse3 \ > > - strcasecmp_l-sse4_2 strcasecmp_l-avx \ > > - strncase_l-sse2 strncase_l-ssse3 \ > > - strncase_l-sse4_2 strncase_l-avx \ > > - strchr-sse2 strchrnul-sse2 strchr-avx2 strchrnul-avx2 \ > > - strrchr-sse2 strrchr-avx2 \ > > - strlen-sse2 strnlen-sse2 strlen-avx2 strnlen-avx2 \ > > - strcat-avx2 strncat-avx2 \ > > - strcat-ssse3 strncat-ssse3\ > > - strcpy-avx2 strncpy-avx2 \ > > - strcpy-sse2 stpcpy-sse2 \ > > - strcpy-ssse3 strncpy-ssse3 stpcpy-ssse3 stpncpy-ssse3 \ > > - strcpy-sse2-unaligned strncpy-sse2-unaligned \ > > - stpcpy-sse2-unaligned stpncpy-sse2-unaligned \ > > - stpcpy-avx2 stpncpy-avx2 \ > > - strcat-sse2 \ > > - strcat-sse2-unaligned strncat-sse2-unaligned \ > > - strchr-sse2-no-bsf memcmp-ssse3 strstr-sse2-unaligned \ > > - strcspn-sse2 strpbrk-sse2 strspn-sse2 \ > > - strcspn-c strpbrk-c strspn-c varshift \ > > - memset-avx512-no-vzeroupper \ > > - memmove-sse2-unaligned-erms \ > > - memmove-avx-unaligned-erms \ > > - memmove-avx512-unaligned-erms \ > > - memset-sse2-unaligned-erms \ > > - memset-avx2-unaligned-erms \ > > - memset-avx512-unaligned-erms \ > > - memchr-avx2-rtm \ > > - memcmp-avx2-movbe-rtm \ > > - memcmpeq-avx2-rtm \ > > - memmove-avx-unaligned-erms-rtm \ > > - memrchr-avx2-rtm \ > > - memset-avx2-unaligned-erms-rtm \ > > - rawmemchr-avx2-rtm \ > > - strchr-avx2-rtm \ > > - strcmp-avx2-rtm \ > > - strchrnul-avx2-rtm \ > > - stpcpy-avx2-rtm \ > > - stpncpy-avx2-rtm \ > > - strcat-avx2-rtm \ > > - strcpy-avx2-rtm \ > > - strlen-avx2-rtm \ > > - strncat-avx2-rtm \ > > - strncmp-avx2-rtm \ > > - strncpy-avx2-rtm \ > > - strnlen-avx2-rtm \ > > - strrchr-avx2-rtm \ > > - memchr-evex \ > > - memcmp-evex-movbe \ > > - memcmpeq-evex \ > > - memmove-evex-unaligned-erms \ > > - memrchr-evex \ > > - memset-evex-unaligned-erms \ > > - rawmemchr-evex \ > > - stpcpy-evex \ > > - stpncpy-evex \ > > - strcat-evex \ > > - strchr-evex \ > > - strchrnul-evex \ > > - strcmp-evex \ > > - strcpy-evex \ > > - strlen-evex \ > > - strncat-evex \ > > - strncmp-evex \ > > - strncpy-evex \ > > - strnlen-evex \ > > - strrchr-evex \ > > - memchr-evex-rtm \ > > - rawmemchr-evex-rtm > > +sysdep_routines += \ > > + memchr-avx2 \ > > + memchr-avx2-rtm \ > > + memchr-evex \ > > + memchr-evex-rtm \ > > + memchr-sse2 \ > > + memcmp-avx2-movbe \ > > + memcmp-avx2-movbe-rtm \ > > + memcmp-evex-movbe \ > > + memcmp-sse2 \ > > + memcmp-sse4 \ > > + memcmp-ssse3 \ > > + memcmpeq-avx2 \ > > + memcmpeq-avx2-rtm \ > > + memcmpeq-evex \ > > + memcmpeq-sse2 \ > > + memcpy-ssse3 \ > > + memcpy-ssse3-back \ > > + memmove-avx-unaligned-erms \ > > + memmove-avx-unaligned-erms-rtm \ > > + memmove-avx512-no-vzeroupper \ > > + memmove-avx512-unaligned-erms \ > > + memmove-evex-unaligned-erms \ > > + memmove-sse2-unaligned-erms \ > > + memmove-ssse3 \ > > + memmove-ssse3-back \ > > + memrchr-avx2 \ > > + memrchr-avx2-rtm \ > > + memrchr-evex \ > > + memrchr-sse2 \ > > + memset-avx2-unaligned-erms \ > > + memset-avx2-unaligned-erms-rtm \ > > + memset-avx512-no-vzeroupper \ > > + memset-avx512-unaligned-erms \ > > + memset-evex-unaligned-erms \ > > + memset-sse2-unaligned-erms \ > > + rawmemchr-avx2 \ > > + rawmemchr-avx2-rtm \ > > + rawmemchr-evex \ > > + rawmemchr-evex-rtm \ > > + rawmemchr-sse2 \ > > + stpcpy-avx2 \ > > + stpcpy-avx2-rtm \ > > + stpcpy-evex \ > > + stpcpy-sse2 \ > > + stpcpy-sse2-unaligned \ > > + stpcpy-ssse3 \ > > + stpncpy-avx2 \ > > + stpncpy-avx2-rtm \ > > + stpncpy-c \ > > + stpncpy-evex \ > > + stpncpy-sse2-unaligned \ > > + stpncpy-ssse3 \ > > + strcasecmp_l-avx \ > > + strcasecmp_l-sse2 \ > > + strcasecmp_l-sse4_2 \ > > + strcasecmp_l-ssse3 \ > > + strcat-avx2 \ > > + strcat-avx2-rtm \ > > + strcat-evex \ > > + strcat-sse2 \ > > + strcat-sse2-unaligned \ > > + strcat-ssse3 \ > > + strchr-avx2 \ > > + strchr-avx2-rtm \ > > + strchr-evex \ > > + strchr-sse2 \ > > + strchr-sse2-no-bsf \ > > + strchrnul-avx2 \ > > + strchrnul-avx2-rtm \ > > + strchrnul-evex \ > > + strchrnul-sse2 \ > > + strcmp-avx2 \ > > + strcmp-avx2-rtm \ > > + strcmp-evex \ > > + strcmp-sse2 \ > > + strcmp-sse2-unaligned \ > > + strcmp-sse4_2 \ > > + strcmp-ssse3 \ > > + strcpy-avx2 \ > > + strcpy-avx2-rtm \ > > + strcpy-evex \ > > + strcpy-sse2 \ > > + strcpy-sse2-unaligned \ > > + strcpy-ssse3 \ > > + strcspn-c \ > > + strcspn-sse2 \ > > + strlen-avx2 \ > > + strlen-avx2-rtm \ > > + strlen-evex \ > > + strlen-sse2 \ > > + strncase_l-avx \ > > + strncase_l-sse2 \ > > + strncase_l-sse4_2 \ > > + strncase_l-ssse3 \ > > + strncat-avx2 \ > > + strncat-avx2-rtm \ > > + strncat-c \ > > + strncat-evex \ > > + strncat-sse2-unaligned \ > > + strncat-ssse3 \ > > + strncmp-avx2 \ > > + strncmp-avx2-rtm \ > > + strncmp-evex \ > > + strncmp-sse2 \ > > + strncmp-sse4_2 \ > > + strncmp-ssse3 \ > > + strncpy-avx2 \ > > + strncpy-avx2-rtm \ > > + strncpy-c \ > > + strncpy-evex \ > > + strncpy-sse2-unaligned \ > > + strncpy-ssse3 \ > > + strnlen-avx2 \ > > + strnlen-avx2-rtm \ > > + strnlen-evex \ > > + strnlen-sse2 \ > > + strpbrk-c \ > > + strpbrk-sse2 \ > > + strrchr-avx2 \ > > + strrchr-avx2-rtm \ > > + strrchr-evex \ > > + strrchr-sse2 \ > > + strspn-c \ > > + strspn-sse2 \ > > + strstr-sse2-unaligned \ > > + varshift \ > > +# sysdep_routines > > CFLAGS-varshift.c += -msse4 > > CFLAGS-strcspn-c.c += -msse4 > > CFLAGS-strpbrk-c.c += -msse4 > > @@ -91,37 +135,55 @@ CFLAGS-strspn-c.c += -msse4 > > endif > > > > ifeq ($(subdir),wcsmbs) > > -sysdep_routines += wmemcmp-sse4 wmemcmp-ssse3 wmemcmp-c \ > > - wmemcmp-avx2-movbe \ > > - wmemchr-sse2 wmemchr-avx2 \ > > - wcscmp-sse2 wcscmp-avx2 \ > > - wcsncmp-sse2 wcsncmp-avx2 \ > > - wcscpy-ssse3 wcscpy-c \ > > - wcschr-sse2 wcschr-avx2 \ > > - wcsrchr-sse2 wcsrchr-avx2 \ > > - wcslen-sse2 wcslen-sse4_1 wcslen-avx2 \ > > - wcsnlen-c wcsnlen-sse4_1 wcsnlen-avx2 \ > > - wcschr-avx2-rtm \ > > - wcscmp-avx2-rtm \ > > - wcslen-avx2-rtm \ > > - wcsncmp-avx2-rtm \ > > - wcsnlen-avx2-rtm \ > > - wcsrchr-avx2-rtm \ > > - wmemchr-avx2-rtm \ > > - wmemcmp-avx2-movbe-rtm \ > > - wcschr-evex \ > > - wcscmp-evex \ > > - wcslen-evex \ > > - wcsncmp-evex \ > > - wcsnlen-evex \ > > - wcsrchr-evex \ > > - wmemchr-evex \ > > - wmemcmp-evex-movbe \ > > - wmemchr-evex-rtm > > +sysdep_routines += \ > > + wcschr-avx2 \ > > + wcschr-avx2-rtm \ > > + wcschr-evex \ > > + wcschr-sse2 \ > > + wcscmp-avx2 \ > > + wcscmp-avx2-rtm \ > > + wcscmp-evex \ > > + wcscmp-sse2 \ > > + wcscpy-c \ > > + wcscpy-ssse3 \ > > + wcslen-avx2 \ > > + wcslen-avx2-rtm \ > > + wcslen-evex \ > > + wcslen-sse2 \ > > + wcslen-sse4_1 \ > > + wcsncmp-avx2 \ > > + wcsncmp-avx2-rtm \ > > + wcsncmp-evex \ > > + wcsncmp-sse2 \ > > + wcsnlen-avx2 \ > > + wcsnlen-avx2-rtm \ > > + wcsnlen-c \ > > + wcsnlen-evex \ > > + wcsnlen-sse4_1 \ > > + wcsrchr-avx2 \ > > + wcsrchr-avx2-rtm \ > > + wcsrchr-evex \ > > + wcsrchr-sse2 \ > > + wmemchr-avx2 \ > > + wmemchr-avx2-rtm \ > > + wmemchr-evex \ > > + wmemchr-evex-rtm \ > > + wmemchr-sse2 \ > > + wmemcmp-avx2-movbe \ > > + wmemcmp-avx2-movbe-rtm \ > > + wmemcmp-c \ > > + wmemcmp-evex-movbe \ > > + wmemcmp-sse4 \ > > + wmemcmp-ssse3 \ > > +# sysdep_routines > > endif > > > > ifeq ($(subdir),debug) > > -sysdep_routines += memcpy_chk-nonshared mempcpy_chk-nonshared \ > > - memmove_chk-nonshared memset_chk-nonshared \ > > - wmemset_chk-nonshared > > +sysdep_routines += \ > > + memcpy_chk-nonshared \ > > + memmove_chk-nonshared \ > > + mempcpy_chk-nonshared \ > > + memset_chk-nonshared \ > > + wmemset_chk-nonshared \ > > +# sysdep_routines > > endif > > -- > > 2.34.1 > > > > I am checking this in. > > -- > H.J. I would like to backport this patch to release branches. Any comments or objections? Conflict resolution patch attached. --Sunil