about summary refs log tree commit diff
path: root/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
diff options
context:
space:
mode:
authorNoah Goldstein <goldstein.w.n@gmail.com>2022-03-23 16:57:46 -0500
committerNoah Goldstein <goldstein.w.n@gmail.com>2022-03-25 13:16:51 -0500
commit305769b2a15c2e96f9e1b5195d3c4e0d6f0f4b68 (patch)
tree8e50dbbcc10a3ce3b4a460b53d8a363c125b03d1 /sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
parent84e7c46df4086873eae28a1fb87d2cf5388b1e16 (diff)
downloadglibc-305769b2a15c2e96f9e1b5195d3c4e0d6f0f4b68.tar.gz
glibc-305769b2a15c2e96f9e1b5195d3c4e0d6f0f4b68.tar.xz
glibc-305769b2a15c2e96f9e1b5195d3c4e0d6f0f4b68.zip
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>
Diffstat (limited to 'sysdeps/x86_64/multiarch/ifunc-strcasecmp.h')
-rw-r--r--sysdeps/x86_64/multiarch/ifunc-strcasecmp.h4
1 files changed, 0 insertions, 4 deletions
diff --git a/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h b/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
index bf0d146e7f..766539c241 100644
--- a/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
+++ b/sysdeps/x86_64/multiarch/ifunc-strcasecmp.h
@@ -22,7 +22,6 @@
 extern __typeof (REDIRECT_NAME) OPTIMIZE (sse2) attribute_hidden;
 extern __typeof (REDIRECT_NAME) OPTIMIZE (ssse3) attribute_hidden;
 extern __typeof (REDIRECT_NAME) OPTIMIZE (sse42) attribute_hidden;
-extern __typeof (REDIRECT_NAME) OPTIMIZE (avx) attribute_hidden;
 extern __typeof (REDIRECT_NAME) OPTIMIZE (avx2) attribute_hidden;
 extern __typeof (REDIRECT_NAME) OPTIMIZE (avx2_rtm) attribute_hidden;
 extern __typeof (REDIRECT_NAME) OPTIMIZE (evex) attribute_hidden;
@@ -46,9 +45,6 @@ IFUNC_SELECTOR (void)
         return OPTIMIZE (avx2);
     }
 
-  if (CPU_FEATURE_USABLE_P (cpu_features, AVX))
-    return OPTIMIZE (avx);
-
   if (CPU_FEATURE_USABLE_P (cpu_features, SSE4_2)
       && !CPU_FEATURES_ARCH_P (cpu_features, Slow_SSE4_2))
     return OPTIMIZE (sse42);