[LV] Add mask support for vectorizing interleaved groups
authorIgor Kirillov <igor.kirillov@arm.com>
Mon, 12 Jun 2023 10:18:16 +0000 (10:18 +0000)
committerIgor Kirillov <igor.kirillov@arm.com>
Thu, 29 Jun 2023 17:50:56 +0000 (17:50 +0000)
commit17bde328d604b63baf701e6c2c4138cdbfaf6f2f
tree20597e986aa36c4a4a168b153d34dc00e2a8fd03
parentd0d864f6f4828e6973b81d1544036d101f6ad4e4
[LV] Add mask support for vectorizing interleaved groups

This patch extends LoopVectorize to handle the vectorization of interleaved
memory accesses with scalable vectors when mask is required or/and predicated
tail folding is enabled.

Differential Revision: https://reviews.llvm.org/D152258
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
llvm/test/Transforms/LoopVectorize/AArch64/sve-interleaved-masked-accesses.ll