about summary refs log tree commit diff
path: root/benchtests/bench-strcmp.c
diff options
context:
space:
mode:
authorNoah Goldstein <goldstein.w.n@gmail.com>2022-01-10 15:35:39 -0600
committerNoah Goldstein <goldstein.w.n@gmail.com>2022-02-03 16:41:41 -0600
commit8418eb3ff4b781d31c4ed5dc6c0bd7356bc45db9 (patch)
tree9195daf9352320fb92b9e4f23be773e24c0a5cea /benchtests/bench-strcmp.c
parentb77b06e0e296f1a2276c27a67e1d44f2cfa38d45 (diff)
downloadglibc-8418eb3ff4b781d31c4ed5dc6c0bd7356bc45db9.tar.gz
glibc-8418eb3ff4b781d31c4ed5dc6c0bd7356bc45db9.tar.xz
glibc-8418eb3ff4b781d31c4ed5dc6c0bd7356bc45db9.zip
x86: Optimize strcmp-evex.S
Optimization are primarily to the loop logic and how the page cross
logic interacts with the loop.

The page cross logic is at times more expensive for short strings near
the end of a page but not crossing the page. This is done to retest
the page cross conditions with a non-faulty check and to improve the
logic for entering the loop afterwards. This is only particular cases,
however, and is general made up for by more than 10x improvements on
the transition from the page cross -> loop case.

The non-page cross cases as well are nearly universally improved.

test-strcmp, test-strncmp, test-wcscmp, and test-wcsncmp all pass.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
Diffstat (limited to 'benchtests/bench-strcmp.c')
0 files changed, 0 insertions, 0 deletions