libc: replace generic memcmp with atom impl
This 'atom' impl is optimized with sse2, whereas the baseline is very
conservative. Since we use SSE-optimized builtins for ... everything
else, do that here, too.
To be clear, the atom impl for this is ssse3, which is required for x86
by the ABI.
Bug: 358360849
Test: mma
Change-Id: I3ba1e89987b75249ca5dc996e0450cff9cdfc8cb
diff --git a/libc/arch-x86/dynamic_function_dispatch.cpp b/libc/arch-x86/dynamic_function_dispatch.cpp
index db64237..98d7ec2 100644
--- a/libc/arch-x86/dynamic_function_dispatch.cpp
+++ b/libc/arch-x86/dynamic_function_dispatch.cpp
@@ -33,9 +33,8 @@
DEFINE_IFUNC_FOR(memcmp) {
__builtin_cpu_init();
- if (__builtin_cpu_is("atom")) RETURN_FUNC(memcmp_func_t, memcmp_atom);
if (__builtin_cpu_supports("sse4.1")) RETURN_FUNC(memcmp_func_t, memcmp_sse4);
- RETURN_FUNC(memcmp_func_t, memcmp_generic);
+ RETURN_FUNC(memcmp_func_t, memcmp_atom);
}
MEMCMP_SHIM()