diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-10-18 17:44:06 -0700 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2022-10-19 17:31:03 -0700 |
commit | 4af6844aa5d3577e327f15dd877a38a043cb236a (patch) | |
tree | 8032676690c0b37aee3c26e5dde1bb600289ef4e /sysdeps/x86_64/strnlen.S | |
parent | b79f8ff26aa6151d2d2167afcddcd1ec46cfbc81 (diff) | |
download | glibc-4af6844aa5d3577e327f15dd877a38a043cb236a.tar.gz glibc-4af6844aa5d3577e327f15dd877a38a043cb236a.tar.xz glibc-4af6844aa5d3577e327f15dd877a38a043cb236a.zip |
x86: Optimize memrchr-evex.S
Optimizations are: 1. Use the fact that lzcnt(0) -> VEC_SIZE for memchr to save a branch in short string case. 2. Save several instructions in len = [VEC_SIZE, 4 * VEC_SIZE] case. 3. Use more code-size efficient instructions. - tzcnt ... -> bsf ... - vpcmpb $0 ... -> vpcmpeq ... Code Size Changes: memrchr-evex.S : -29 bytes Net perf changes: Reported as geometric mean of all improvements / regressions from N=10 runs of the benchtests. Value as New Time / Old Time so < 1.0 is improvement and 1.0 is regression. memrchr-evex.S : 0.949 (Mostly from improvements in small strings) Full results attached in email. Full check passes on x86-64.
Diffstat (limited to 'sysdeps/x86_64/strnlen.S')
0 files changed, 0 insertions, 0 deletions