@@ -835,7 +835,8 @@ bool VectorCombine::foldVectorInsertToShuffle(Instruction &I) {
835
835
unsigned SubVecIdx = SubVecPtr->getZExtValue ();
836
836
837
837
// 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))
839
840
return false ;
840
841
841
842
// An insert that entirely overwrites Vec with SubVec is a nop.
@@ -850,18 +851,17 @@ bool VectorCombine::foldVectorInsertToShuffle(Instruction &I) {
850
851
// undefined.
851
852
SmallVector<int , 8 > WidenMask (VecNumElts, PoisonMaskElem);
852
853
std::iota (WidenMask.begin (), WidenMask.begin () + SubVecNumElts, 0 );
853
- std::fill (WidenMask.begin () + SubVecNumElts, WidenMask.end (), PoisonMaskElem);
854
854
855
855
auto *WidenShuffle = Builder.CreateShuffleVector (SubVec, WidenMask);
856
856
Worklist.pushValue (WidenShuffle);
857
857
858
858
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 );
862
862
863
- auto *Shuffle = Builder.CreateShuffleVector (Vec, WidenShuffle, Mask);
864
- replaceValue (I, *Shuffle );
863
+ auto *InsertShuffle = Builder.CreateShuffleVector (Vec, WidenShuffle, Mask);
864
+ replaceValue (I, *InsertShuffle );
865
865
return true ;
866
866
}
867
867
0 commit comments