This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][AArch64] Optimized memcmp


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]