x86: Remove generic strncat, strncpy, and stpncpy implementations
commit9c38deec96ebe1b052a0c1bef137b90967755f18
authorNoah Goldstein <goldstein.w.n@gmail.com>
Wed, 6 Jul 2022 00:06:41 +0000 (5 17:06 -0700)
committerNoah Goldstein <goldstein.w.n@gmail.com>
Tue, 12 Jul 2022 18:44:12 +0000 (12 11:44 -0700)
treeae940cf21e7ecbef92e0028f10b7c0dc5a6400c6
parentc5bec9d491c5d066dd238ccafcdec78cd4592e8e
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/Makefile
sysdeps/x86_64/multiarch/ifunc-impl-list.c
sysdeps/x86_64/multiarch/ifunc-strcpy.h
sysdeps/x86_64/multiarch/ifunc-strncpy.h [copied from sysdeps/x86_64/multiarch/ifunc-strcpy.h with 80% similarity]
sysdeps/x86_64/multiarch/stpncpy-generic.c [deleted file]
sysdeps/x86_64/multiarch/stpncpy.c
sysdeps/x86_64/multiarch/strncat-generic.c [deleted file]
sysdeps/x86_64/multiarch/strncat.c
sysdeps/x86_64/multiarch/strncpy-generic.c [deleted file]
sysdeps/x86_64/multiarch/strncpy.c