Dear all, This is my attempt to close the loop on a relatively old discussion [1] caused by a compiler bug [2]. In a nutshell, the Clang build issues a bogus warning about GCC while it silently botches the neon auto-loop vectorization. :)
Many thanks to all who have investigated this issue before me. Arnd posted a workaround for xor.h [3], but I very much like his first suggestion of disabling the broken feature until the compiler is fixed. Tested on latest linux next-20201105 using bcm2835 & versatile configs and Clang 10.0.1 P.S: While testing aarch64/imx8m I also noticed vectorization is broke there as well, but that deserves its own patch because it's a separate xor-neon implementation (if this approach is deemed sensible). [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20190528235742.105510-1-natechancel...@gmail.com/ [2] https://bugs.llvm.org/show_bug.cgi?id=40976 [3] https://bugs.llvm.org/show_bug.cgi?id=40976#c6 Kind regards, Adrian Adrian Ratiu (1): arm: lib: xor-neon: disable clang vectorization Nathan Chancellor (1): arm: lib: xor-neon: remove unnecessary GCC < 4.6 warning arch/arm/include/asm/xor.h | 3 ++- arch/arm/lib/Makefile | 3 +++ arch/arm/lib/xor-neon.c | 13 +++++-------- 3 files changed, 10 insertions(+), 9 deletions(-) -- 2.29.0