arm64: crypto: add NEON accelerated XOR implementation
authorJackie Liu <liuyun01@kylinos.cn>
Tue, 4 Dec 2018 01:43:23 +0000 (09:43 +0800)
committerWill Deacon <will.deacon@arm.com>
Thu, 6 Dec 2018 16:47:06 +0000 (16:47 +0000)
commitcc9f8349cb33965120a96c12e05d00676162eb7f
treec618ea48cc0367c26fac7a84f3aa73228ba971be
parent21e28547f613e7ba4f4cb6831a3ead2d723fdf7b
arm64: crypto: add NEON accelerated XOR implementation

This is a NEON acceleration method that can improve
performance by approximately 20%. I got the following
data from the centos 7.5 on Huawei's HISI1616 chip:

[ 93.837726] xor: measuring software checksum speed
[ 93.874039]   8regs  : 7123.200 MB/sec
[ 93.914038]   32regs : 7180.300 MB/sec
[ 93.954043]   arm64_neon: 9856.000 MB/sec
[ 93.954047] xor: using function: arm64_neon (9856.000 MB/sec)

I believe this code can bring some optimization for
all arm64 platform. thanks for Ard Biesheuvel's suggestions.

Signed-off-by: Jackie Liu <liuyun01@kylinos.cn>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/include/asm/Kbuild
arch/arm64/include/asm/xor.h [new file with mode: 0644]
arch/arm64/lib/Makefile
arch/arm64/lib/xor-neon.c [new file with mode: 0644]