llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
29.29k stars 12.11k forks source link

[AArch64] Vectorize `memcmp/bcmp` expansion #61363

Open Kmeakin opened 1 year ago

Kmeakin commented 1 year ago

Expansions of memcmp(s1, s2, n) for static n <= 64 use scalar instructions for comparisons. It should be possible to use SIMD/SVE registers for a more efficient expansion for large values of n. See eg https://github.com/ARM-software/optimized-routines/blob/master/string/aarch64/memcmp.S and https://github.com/ARM-software/optimized-routines/blob/master/string/aarch64/memcmp-sve.S

llvmbot commented 1 year ago

@llvm/issue-subscribers-backend-aarch64