[PATCH] D57598: [VPLAN] Determine Vector Width programmatically.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 1 14:52:46 PST 2019
fhahn added reviewers: dcaballe, sguggill, fhahn.
fhahn added a comment.
Thanks for working on this Francesco! +1 to Hideki's point about moving to LoopVectorizationPlanner.
================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:1001
InstWidening getWideningDecision(Instruction *I, unsigned VF) {
- assert(VF >= 2 && "Expected VF >=2");
-
----------------
Is this related to the patch? I suppose guessVectorizationFactor could set UserVF to 1, which could reach this code. It would be better to not vectorize with VF == 1.
================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:3787
// set at the end of vector code generation.
- Type *VecTy =
- (VF == 1) ? PN->getType() : VectorType::get(PN->getType(), VF);
+ Type *VecTy = VectorType::get(PN->getType(), VF);
Value *VecPhi = Builder.CreatePHI(VecTy, PN->getNumOperands(), "vec.phi");
----------------
Related to the patch?
================
Comment at: test/Transforms/LoopVectorize/outer_loop_test1_no_explicit_vect_width.ll:90
+ %0 = trunc i64 %indvars.iv21 to i32
+ store i32 %0, i32* %arrayidx, align 4
+ %1 = trunc i64 %indvars.iv21 to i32
----------------
Looks like we are just using a single store width in this test. Maybe it would be worth adding loads/stores to a different type as well?
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D57598/new/
https://reviews.llvm.org/D57598
More information about the llvm-commits
mailing list