[PATCH][AArch64] Optimized memcmp
Szabolcs Nagy
szabolcs.nagy@arm.com
Tue Aug 8 16:09:00 GMT 2017
On 08/08/17 17:03, Wilco Dijkstra wrote:
>
> ping
>
>
> From: Wilco Dijkstra
> Sent: 07 July 2017 16:11
> To: libc-alpha@sourceware.org
> Cc: nd; Szabolcs Nagy
> Subject: [PATCH][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.
>
> ChangeLog:
> 2017-07-07 Wilco Dijkstra <wdijkstr@arm.com>
>
> * sysdeps/aarch64/memcmp.S (memcmp):
> Rewrite of optimized memcmp.
>
ok to commit.
More information about the Libc-alpha
mailing list