Lines Matching refs:InsertElementInst
494 if (auto *IE = dyn_cast<InsertElementInst>(I)) { in visitExtractElementInst()
637 if (InsertElementInst *IEI = dyn_cast<InsertElementInst>(V)) { in collectSingleShuffleElements()
687 static bool replaceExtractElements(InsertElementInst *InsElt, in replaceExtractElements()
733 if (InsElt->hasOneUse() && isa<InsertElementInst>(InsElt->user_back())) in replaceExtractElements()
791 if (InsertElementInst *IEI = dyn_cast<InsertElementInst>(V)) { in collectShuffleElements()
1206 static Instruction *foldInsSequenceIntoSplat(InsertElementInst &InsElt) { in foldInsSequenceIntoSplat()
1209 if (InsElt.hasOneUse() && isa<InsertElementInst>(InsElt.user_back())) in foldInsSequenceIntoSplat()
1225 InsertElementInst *CurrIE = &InsElt; in foldInsSequenceIntoSplat()
1227 InsertElementInst *FirstIE = nullptr; in foldInsSequenceIntoSplat()
1236 auto *NextIE = dyn_cast<InsertElementInst>(CurrIE->getOperand(0)); in foldInsSequenceIntoSplat()
1266 FirstIE = InsertElementInst::Create(PoisonVec, SplatVal, Zero, "", &InsElt); in foldInsSequenceIntoSplat()
1279 static Instruction *foldInsEltIntoSplat(InsertElementInst &InsElt) { in foldInsEltIntoSplat()
1316 static Instruction *foldInsEltIntoIdentityShuffle(InsertElementInst &InsElt) { in foldInsEltIntoIdentityShuffle()
1375 static Instruction *hoistInsEltConst(InsertElementInst &InsElt2, in hoistInsEltConst()
1377 auto *InsElt1 = dyn_cast<InsertElementInst>(InsElt2.getOperand(0)); in hoistInsEltConst()
1390 return InsertElementInst::Create(NewInsElt1, Y, IdxC1); in hoistInsEltConst()
1398 static Instruction *foldConstantInsEltIntoShuffle(InsertElementInst &InsElt) { in foldConstantInsEltIntoShuffle()
1453 } else if (auto *IEI = dyn_cast<InsertElementInst>(Inst)) { in foldConstantInsEltIntoShuffle()
1502 static Instruction *narrowInsElt(InsertElementInst &InsElt, in narrowInsElt()
1535 static Instruction *foldTruncInsEltPair(InsertElementInst &InsElt, in foldTruncInsEltPair()
1598 Instruction *InstCombinerImpl::visitInsertElementInst(InsertElementInst &IE) { in visitInsertElementInst()
1619 return InsertElementInst::Create(NewIns, OtherScalar, in visitInsertElementInst()
1684 auto isShuffleRootCandidate = [](InsertElementInst &Insert) { in visitInsertElementInst()
1687 auto *InsertUser = dyn_cast<InsertElementInst>(Insert.user_back()); in visitInsertElementInst()
2658 return InsertElementInst::Create(V1, Scalar, IndexC); in foldShuffleWithInsert()
2666 return InsertElementInst::Create(V1, Scalar, IndexC); in foldShuffleWithInsert()