From 9c38deec96ebe1b052a0c1bef137b90967755f18 Mon Sep 17 00:00:00 2001 From: Noah Goldstein Date: Tue, 5 Jul 2022 17:06:41 -0700 Subject: x86: Remove generic strncat, strncpy, and stpncpy implementations These functions all have optimized versions: __strncat_sse2_unaligned, __strncpy_sse2_unaligned, and stpncpy_sse2_unaligned which are faster than their respective generic implementations. Since the sse2 versions can run on baseline x86_64, we should use these as the baseline implementation and can remove the generic implementations. Geometric mean of N=20 runs of the entire benchmark suite on: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz (Tigerlake) __strncat_sse2_unaligned / __strncat_generic: .944 __strncpy_sse2_unaligned / __strncpy_generic: .726 __stpncpy_sse2_unaligned / __stpncpy_generic: .650 Tested build with and without multiarch and full check with multiarch. --- sysdeps/x86_64/multiarch/strncat.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sysdeps/x86_64/multiarch/strncat.c') diff --git a/sysdeps/x86_64/multiarch/strncat.c b/sysdeps/x86_64/multiarch/strncat.c index 50fba8a41f..a590c25d51 100644 --- a/sysdeps/x86_64/multiarch/strncat.c +++ b/sysdeps/x86_64/multiarch/strncat.c @@ -24,8 +24,7 @@ # undef strncat # define SYMBOL_NAME strncat -# define GENERIC generic -# include "ifunc-strcpy.h" +# include "ifunc-strncpy.h" libc_ifunc_redirected (__redirect_strncat, strncat, IFUNC_SELECTOR ()); strong_alias (strncat, __strncat); -- cgit 1.4.1