[PATCH] D53011: [LV] Add support for vectorizing predicated strided accesses using masked interleave-group
Ayal Zaks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 9 06:06:51 PDT 2018
Ayal added inline comments.
================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:2038
+ auto *Undefs = UndefValue::get(Mask[Part]->getType());
+ auto *RepMask = createReplicatedMask(Builder, InterleaveFactor, VF);
+ Value *ShuffledMask = Builder.CreateShuffleVector(
----------------
One could set Undefs and RepMask once outside the "for Part" loop, using Mask[0]->getType(), and also reuse them for interleaved store group. But doing so conditional on IsMaskRequired is a bit less appealing.
================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:2042
+ NewLoad = Builder.CreateMaskedLoad(NewPtrs[Part], Group->getAlignment(),
+ ShuffledMask, UndefValue::get(VecTy),
+ "wide.masked.vec");
----------------
Use `UndefVec` instead of `UndefValue::get(VecTy)`
https://reviews.llvm.org/D53011
More information about the llvm-commits
mailing list