[PATCH] D106164: [LV] Don't assume isScalarAfterVectorization if one of the uses needs widening.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 26 08:24:40 PDT 2021
fhahn added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:5148
+ // PossibleNonScalarPtrs.
+ if (llvm::all_of(I->users(), [&](User *U) {
+ return (isa<LoadInst>(U) || isa<StoreInst>(U)) &&
----------------
This change should not be needed I think; the changes above should be sufficient.
================
Comment at: llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll:56
+ %curchar = phi i8** [ %curchar.next, %loop.body ], [ %curptr, %entry ]
+ %0 = phi i8* [ %incdec.ptr190, %loop.body ], [ %src, %entry ]
+ %incdec.ptr190 = getelementptr inbounds i8, i8* %0, i64 1
----------------
I think would be good to either assign more meaningful names to make the test a bit easier to read or use the same version as in `llvm/test/Transforms/LoopVectorize/pointer-induction.ll`.
================
Comment at: llvm/test/Transforms/LoopVectorize/AArch64/sve-widen-gep.ll:4
+
+target triple = "aarch64-unknown-linux-gnu"
+
----------------
sdesmalen wrote:
> fhahn wrote:
> > Do we still need this test? The issue is not SVE/AArch64 specific and it should already be covered by the general Test in Pointer-induction.ll.
> I'm a bit cautious about someone just regenerating the pointer-induction.ll test and reviewers not realising this is a big functional regression, because for scalable vectors it actually causes something to break. This test would guard that.
ok fair enough.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106164/new/
https://reviews.llvm.org/D106164
More information about the llvm-commits
mailing list