git-arm64-memcmp
authorGNU Libc Maintainers <debian-glibc@lists.debian.org>
Fri, 26 Jan 2018 22:35:29 +0000 (22:35 +0000)
committerAurelien Jarno <aurel32@debian.org>
Fri, 26 Jan 2018 22:35:29 +0000 (22:35 +0000)
commitd60c57c44003b4e328f225c1f328796230989d15
tree3307990c39e99e71c997a05e97e433e7ec23dfd2
parentcacb852ea54c54c25ebbca446db2681e3a39dd50
git-arm64-memcmp

commit 922369032c604b4dcfd535e1bcddd4687e7126a5
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Thu Aug 10 17:00:38 2017 +0100

    [AArch64] Optimized memcmp.

    This is an optimized memcmp for AArch64.  This is a complete rewrite
    using a different algorithm.  The previous version split into cases
    where both inputs were aligned, the inputs were mutually aligned and
    unaligned using a byte loop.  The new version combines all these cases,
    while small inputs of less than 8 bytes are handled separately.

    This allows the main code to be sped up using unaligned loads since
    there are now at least 8 bytes to be compared.  After the first 8 bytes,
    align the first input.  This ensures each iteration does at most one
    unaligned access and mutually aligned inputs behave as aligned.
    After the main loop, process the last 8 bytes using unaligned accesses.

    This improves performance of (mutually) aligned cases by 25% and
    unaligned by >500% (yes >6 times faster) on large inputs.

            * sysdeps/aarch64/memcmp.S (memcmp):
            Rewrite of optimized memcmp.

Gbp-Pq: Topic arm
Gbp-Pq: Name git-arm64-memcmp.diff
sysdeps/aarch64/memcmp.S