Skip to content

Commit f8588d5

Browse files
committed
[VectorCombine] Remove redundant fill and reduce three loops to two iota calls
1 parent 78a18d0 commit f8588d5

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

llvm/lib/Transforms/Vectorize/VectorCombine.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,8 @@ bool VectorCombine::foldVectorInsertToShuffle(Instruction &I) {
835835
unsigned SubVecIdx = SubVecPtr->getZExtValue();
836836

837837
// Ensure insertion of SubVec doesn't exceed Dst bounds.
838-
if (SubVecIdx % SubVecNumElts != 0 || SubVecIdx + SubVecNumElts > DstNumElts)
838+
if ((SubVecIdx % SubVecNumElts != 0) ||
839+
(SubVecIdx + SubVecNumElts > DstNumElts))
839840
return false;
840841

841842
// An insert that entirely overwrites Vec with SubVec is a nop.
@@ -850,18 +851,17 @@ bool VectorCombine::foldVectorInsertToShuffle(Instruction &I) {
850851
// undefined.
851852
SmallVector<int, 8> WidenMask(VecNumElts, PoisonMaskElem);
852853
std::iota(WidenMask.begin(), WidenMask.begin() + SubVecNumElts, 0);
853-
std::fill(WidenMask.begin() + SubVecNumElts, WidenMask.end(), PoisonMaskElem);
854854

855855
auto *WidenShuffle = Builder.CreateShuffleVector(SubVec, WidenMask);
856856
Worklist.pushValue(WidenShuffle);
857857

858858
SmallVector<int, 8> Mask(DstNumElts);
859-
std::iota(Mask.begin(), Mask.begin() + SubVecIdx, 0);
860-
std::iota(Mask.begin() + SubVecIdx, Mask.begin() + SubVecIdx + SubVecNumElts, DstNumElts);
861-
std::iota(Mask.begin() + SubVecIdx + SubVecNumElts, Mask.end(), SubVecIdx + SubVecNumElts);
859+
std::iota(Mask.begin(), Mask.end(), 0);
860+
std::iota(Mask.begin() + SubVecIdx, Mask.begin() + SubVecIdx + SubVecNumElts,
861+
DstNumElts);
862862

863-
auto *Shuffle = Builder.CreateShuffleVector(Vec, WidenShuffle, Mask);
864-
replaceValue(I, *Shuffle);
863+
auto *InsertShuffle = Builder.CreateShuffleVector(Vec, WidenShuffle, Mask);
864+
replaceValue(I, *InsertShuffle);
865865
return true;
866866
}
867867

0 commit comments

Comments
 (0)