[llvm] [LV][AArch64]: Utilise SVE ld4/st4 instructions via auto-vectorisation (PR #89018)
Mel Chen via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 17 03:41:34 PDT 2024
================
@@ -2519,7 +2533,7 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
unsigned Part, Value *MaskForGaps) -> Value * {
if (VF.isScalable()) {
assert(!MaskForGaps && "Interleaved groups with gaps are not supported.");
- assert(InterleaveFactor == 2 &&
+ assert(isPowerOf2_32(InterleaveFactor) &&
"Unsupported deinterleave factor for scalable vectors");
auto *BlockInMaskPart = State.get(BlockInMask, Part);
SmallVector<Value *, 2> Ops = {BlockInMaskPart, BlockInMaskPart};
----------------
Mel-Chen wrote:
The mask of masked interleaved accesses also requires an interleave tree to generate the correct mask.
https://github.com/llvm/llvm-project/pull/89018
More information about the llvm-commits
mailing list