libc: simplify ssse3 detection

Since ssse3 is required as part of Android's ABI, even for 32-bit x86
(https://developer.android.com/ndk/guides/abis#sa), we can simplify
these ifuncs away.

Bug: 358360849
Test: mma
Change-Id: Ife68c7f492cc1b179aa332c12ab35b2ad6b9795a
diff --git a/libc/arch-x86/dynamic_function_dispatch.cpp b/libc/arch-x86/dynamic_function_dispatch.cpp
index 9d7a4c9..e6cc5fb 100644
--- a/libc/arch-x86/dynamic_function_dispatch.cpp
+++ b/libc/arch-x86/dynamic_function_dispatch.cpp
@@ -84,89 +84,11 @@
 }
 STRLEN_SHIM()
 
-DEFINE_IFUNC_FOR(strcmp) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strcmp_func_t, strcmp_ssse3);
-  RETURN_FUNC(strcmp_func_t, strcmp_generic);
-}
-STRCMP_SHIM()
-
-DEFINE_IFUNC_FOR(strncmp) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3"))
-    RETURN_FUNC(strncmp_func_t, strncmp_ssse3);
-  RETURN_FUNC(strncmp_func_t, strncmp_generic);
-}
-STRNCMP_SHIM()
-
-DEFINE_IFUNC_FOR(strcat) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strcat_func_t, strcat_ssse3);
-  RETURN_FUNC(strcat_func_t, strcat_generic);
-}
-STRCAT_SHIM()
-
-DEFINE_IFUNC_FOR(strncat) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strncat_func_t, strncat_ssse3);
-  RETURN_FUNC(strncat_func_t, strncat_openbsd);
-}
-STRNCAT_SHIM()
-
-typedef size_t strlcat_func_t(char*, const char*, size_t);
-DEFINE_IFUNC_FOR(strlcat) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strlcat_func_t, strlcat_ssse3);
-  RETURN_FUNC(strlcat_func_t, strlcat_openbsd);
-}
-DEFINE_STATIC_SHIM(size_t strlcat(char* dst, const char* src, size_t n) {
-  FORWARD(strlcat)(dst, src, n);
-})
-
-typedef size_t strlcpy_func_t(char*, const char*, size_t);
-DEFINE_IFUNC_FOR(strlcpy) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(strlcpy_func_t, strlcpy_ssse3);
-  RETURN_FUNC(strlcpy_func_t, strlcpy_openbsd);
-}
-DEFINE_STATIC_SHIM(size_t strlcpy(char* dst, const char* src, size_t n) {
-  FORWARD(strlcpy)(dst, src, n);
-})
-
-typedef wchar_t* wcscat_func_t(wchar_t*, const wchar_t*);
-DEFINE_IFUNC_FOR(wcscat) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(wcscat_func_t, wcscat_ssse3);
-  RETURN_FUNC(wcscat_func_t, wcscat_freebsd);
-}
-DEFINE_STATIC_SHIM(wchar_t* wcscat(wchar_t* dst, const wchar_t* src) {
-  FORWARD(wcscat)(dst, src);
-})
-
-typedef wchar_t* wcscpy_func_t(wchar_t*, const wchar_t*);
-DEFINE_IFUNC_FOR(wcscpy) {
-  __builtin_cpu_init();
-  // TODO: ssse3 is required by our x86 abi!
-  if (__builtin_cpu_supports("ssse3")) RETURN_FUNC(wcscpy_func_t, wcscpy_ssse3);
-  RETURN_FUNC(wcscpy_func_t, wcscpy_freebsd);
-}
-DEFINE_STATIC_SHIM(wchar_t* wcscpy(wchar_t* dst, const wchar_t* src) {
-  FORWARD(wcscpy)(dst, src);
-})
-
 typedef int wmemcmp_func_t(const wchar_t*, const wchar_t*, size_t);
 DEFINE_IFUNC_FOR(wmemcmp) {
   __builtin_cpu_init();
   if (__builtin_cpu_supports("sse4.1")) RETURN_FUNC(wmemcmp_func_t, wmemcmp_sse4);
-  if (__builtin_cpu_is("atom")) RETURN_FUNC(wmemcmp_func_t, wmemcmp_atom);
-  RETURN_FUNC(wmemcmp_func_t, wmemcmp_freebsd);
+  RETURN_FUNC(wmemcmp_func_t, wmemcmp_atom);
 }
 DEFINE_STATIC_SHIM(int wmemcmp(const wchar_t* lhs, const wchar_t* rhs, size_t n) {
   FORWARD(wmemcmp)(lhs, rhs, n);