Skip to content

Commit f27edf3

Browse files
committed
add new instructions to worklist
1 parent 6dc7cf1 commit f27edf3

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

llvm/lib/Transforms/Vectorize/VectorCombine.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -729,18 +729,24 @@ bool VectorCombine::foldInsExtFNeg(Instruction &I) {
729729
if (NewCost > OldCost)
730730
return false;
731731

732-
Value *NewShuf;
732+
Value *NewShuf, *LenChgShuf = nullptr;
733733
// insertelt DstVec, (fneg (extractelt SrcVec, Index)), Index
734734
Value *VecFNeg = Builder.CreateFNegFMF(SrcVec, FNeg);
735735
if (NeedLenChg) {
736736
// shuffle DstVec, (shuffle (fneg SrcVec), poison, SrcMask), Mask
737-
Value *LenChgShuf = Builder.CreateShuffleVector(VecFNeg, SrcMask);
737+
LenChgShuf = Builder.CreateShuffleVector(VecFNeg, SrcMask);
738738
NewShuf = Builder.CreateShuffleVector(DstVec, LenChgShuf, Mask);
739+
Worklist.pushValue(LenChgShuf);
739740
} else {
740741
// shuffle DstVec, (fneg SrcVec), Mask
741742
NewShuf = Builder.CreateShuffleVector(DstVec, VecFNeg, Mask);
742743
}
743744

745+
if (LenChgShuf)
746+
Worklist.pushValue(LenChgShuf);
747+
748+
Worklist.pushValue(VecFNeg);
749+
Worklist.pushValue(NewShuf);
744750
replaceValue(I, *NewShuf);
745751
return true;
746752
}

0 commit comments

Comments
 (0)