[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