[PATCH] aarch64: Improve strncmp for mutually misaligned inputs
Szabolcs Nagy
szabolcs.nagy@arm.com
Tue Mar 13 13:12:00 GMT 2018
On 13/03/18 09:03, Siddhesh Poyarekar wrote:
> Ping!
>
> On Tuesday 06 March 2018 07:17 PM, Siddhesh Poyarekar wrote:
>> The mutually misaligned inputs on aarch64 are compared with a simple
>> byte copy, which is not very efficient. Enhance the comparison
>> similar to strcmp by loading a double-word at a time. The peak
>> performance improvement (i.e. 4k maxlen comparisons) due to this on
>> the strncmp microbenchmark is as follows:
>>
>> falkor: 3.5x (up to 72% time reduction)
>> cortex-a73: 3.5x (up to 71% time reduction)
>> cortex-a53: 3.5x (up to 71% time reduction)
>>
>> All mutually misaligned inputs from 16 bytes maxlen onwards show
>> upwards of 15% improvement and there is no measurable effect on the
>> performance of aligned/mutually aligned inputs.
>>
>> * sysdeps/aarch64/strncmp.S (count): New macro.
>> (strncmp): Store misaligned length in SRC1 in COUNT.
>> (mutual_align): Adjust.
>> (misaligned8): Load dword at a time when it is safe.
OK to commit.
(it would be nice to have the equivalent change in newlib too..)
More information about the Libc-alpha
mailing list