diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-04-14 11:47:40 -0500 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-04-14 23:21:42 -0500 |
commit | 26b2478322db94edc9e0e8f577b2f71d291e5acb (patch) | |
tree | 6087539637c25880c3f6e32d0ab19d0d23c9e0df /stdio-common | |
parent | d85916e30a902ff4bce5b0b44ff245ef58b79236 (diff) | |
download | glibc-26b2478322db94edc9e0e8f577b2f71d291e5acb.tar.gz glibc-26b2478322db94edc9e0e8f577b2f71d291e5acb.tar.xz glibc-26b2478322db94edc9e0e8f577b2f71d291e5acb.zip |
x86: Reduce code size of mem{move|pcpy|cpy}-ssse3
The goal is to remove most SSSE3 function as SSE4, AVX2, and EVEX are generally preferable. memcpy/memmove is one exception where avoiding unaligned loads with `palignr` is important for some targets. This commit replaces memmove-ssse3 with a better optimized are lower code footprint verion. As well it aliases memcpy to memmove. Aside from this function all other SSSE3 functions should be safe to remove. The performance is not changed drastically although shows overall improvements without any major regressions or gains. bench-memcpy geometric_mean(N=50) New / Original: 0.957 bench-memcpy-random geometric_mean(N=50) New / Original: 0.912 bench-memcpy-large geometric_mean(N=50) New / Original: 0.892 Benchmarks where run on Zhaoxin KX-6840@2000MHz See attached numbers for all results. More important this saves 7246 bytes of code size in memmove an additional 10741 bytes by reusing memmove code for memcpy (total 17987 bytes saves). As well an additional 896 bytes of rodata for the jump table entries.
Diffstat (limited to 'stdio-common')
0 files changed, 0 insertions, 0 deletions