Lines Matching refs:InsertElementInst
215 if (!isa<InsertElementInst, ExtractElementInst>(V) && in isVectorLikeInstWithConstOps()
225 assert(isa<InsertElementInst>(V) && "Expected only insertelement."); in isVectorLikeInstWithConstOps()
743 if (const auto *IE = dyn_cast<InsertElementInst>(InsertInst)) { in getInsertIndex()
3667 (TopToBottom && isa<StoreInst, InsertElementInst>(TE.getMainOp()))) && in getReorderingData()
3894 InsertElementInst>(TE->getMainOp()) && in reorderTopToBottom()
3899 if (isa<InsertElementInst, StoreInst>(TE->getMainOp())) in reorderTopToBottom()
4202 if (!isa<InsertElementInst, StoreInst>(Data.first->getMainOp()) || in reorderBottomToTop()
4628 !isa<InsertElementInst>(S.OpValue)) { in buildTree_rec()
4719 (isa<InsertElementInst, ExtractValueInst, ExtractElementInst>( in buildTree_rec()
5820 else if (auto *IE = dyn_cast<InsertElementInst>(VL[0])) in getEntryCost()
5918 if (isa<InsertElementInst>(VL[0])) in getEntryCost()
6726 isa<InsertElementInst>(VectorizableTree[0]->Scalars[0]) && in isTreeTinyAndNotFullyVectorizable()
6847 static bool areTwoInsertFromSameBuildVector(InsertElementInst *VU, in areTwoInsertFromSameBuildVector()
6848 InsertElementInst *V) { in areTwoInsertFromSameBuildVector()
6875 IE1 = dyn_cast<InsertElementInst>(IE1->getOperand(0)); in areTwoInsertFromSameBuildVector()
6882 IE2 = dyn_cast<InsertElementInst>(IE2->getOperand(0)); in areTwoInsertFromSameBuildVector()
6890 static bool isFirstInsertElement(const InsertElementInst *IE1, in isFirstInsertElement()
6891 const InsertElementInst *IE2) { in isFirstInsertElement()
6896 const InsertElementInst *PrevI1; in isFirstInsertElement()
6897 const InsertElementInst *PrevI2; in isFirstInsertElement()
6909 I1 = dyn_cast<InsertElementInst>(I1->getOperand(0)); in isFirstInsertElement()
6912 I2 = dyn_cast<InsertElementInst>(I2->getOperand(0)); in isFirstInsertElement()
7060 if (!isa_and_nonnull<InsertElementInst>(EU.User) && in getTreeCost()
7081 if (auto *VU = dyn_cast_or_null<InsertElementInst>(EU.User)) { in getTreeCost()
7090 VU, cast<InsertElementInst>(Pair.first)); in getTreeCost()
7100 while (auto *IEBase = dyn_cast<InsertElementInst>(Base)) { in getTreeCost()
7109 IEBase = cast<InsertElementInst>(Base); in getTreeCost()
7118 Base = cast<InsertElementInst>(Base)->getOperand(0); in getTreeCost()
7124 if (isFirstInsertElement(VU, cast<InsertElementInst>(It->first))) in getTreeCost()
7594 auto *InsElt = dyn_cast<InsertElementInst>(Vec); in gather()
7875 else if (auto *IE = dyn_cast<InsertElementInst>(VL0)) in vectorizeTree()
8430 SmallVector<InsertElementInst *> InsertElements;
8471 DenseMap<Value *, InsertElementInst *> VectorToInsertElement; in vectorizeTree()
8513 isa<InsertElementInst>(Scalar) && in vectorizeTree()
8515 auto *IE = cast<InsertElementInst>(Scalar); in vectorizeTree()
8545 if (auto *VU = dyn_cast<InsertElementInst>(User)) { in vectorizeTree()
8558 InsertElementInst *VecInsert = Data.InsertElements.front(); in vectorizeTree()
8571 while (auto *IEBase = dyn_cast<InsertElementInst>(Base)) { in vectorizeTree()
8579 IEBase = cast<InsertElementInst>(Base); in vectorizeTree()
8588 Base = cast<InsertElementInst>(Base)->getOperand(0); in vectorizeTree()
8601 It->InsertElements.push_back(cast<InsertElementInst>(User)); in vectorizeTree()
8796 InsertElementInst *FirstInsert = ShuffledInserts[I].InsertElements.front(); in vectorizeTree()
8797 InsertElementInst *LastInsert = ShuffledInserts[I].InsertElements.back(); in vectorizeTree()
8828 InsertElementInst *II = nullptr; in vectorizeTree()
8838 II = dyn_cast<InsertElementInst>(II->getOperand(0)); in vectorizeTree()
8848 for (InsertElementInst *IE : reverse(ShuffledInserts[I].InsertElements)) { in vectorizeTree()
9005 if (!isa<InsertElementInst>(&In) && !isa<ExtractElementInst>(&In) && in optimizeGatherSequence()
9630 if (auto *IEI = dyn_cast<InsertElementInst>(V)) in getVectorElementSize()
9728 isa<InsertElementInst>(I->getOperand(0))) in collectValuesToDemote()
10282 if (isa<InsertElementInst>(A) || isa<InsertElementInst>(B)) in tryToVectorizePair()
10307 if (!isa<InsertElementInst>(V) && !isValidElementType(Ty)) { in tryToVectorizeList()
10339 if (auto *IE = dyn_cast<InsertElementInst>(VL[0])) in tryToVectorizeList()
10380 R.reorderBottomToTop(!isa<InsertElementInst>(Ops.front())); in tryToVectorizeList()
11499 if (auto *IE = dyn_cast<InsertElementInst>(InsertInst)) in getAggregateSize()
11537 if (isa<InsertElementInst>(InsertedOperand) || in findBuildAggregate_rec()
11549 isa<InsertElementInst>(LastInsertInst)) && in findBuildAggregate_rec()
11572 assert((isa<InsertElementInst>(LastInsertInst) || in findBuildAggregate()
11758 if (!isa<CmpInst, InsertElementInst, InsertValueInst>(Inst)) in tryToVectorizeHorReductionOrInstOperands()
11771 if (!isa<PHINode, CmpInst, InsertElementInst, InsertValueInst>(I) && in tryToVectorizeHorReductionOrInstOperands()
11816 bool SLPVectorizerPass::vectorizeInsertElementInst(InsertElementInst *IEI, in vectorizeInsertElementInst()
11967 } else if (auto *LastInsertElem = dyn_cast<InsertElementInst>(I)) { in vectorizeSimpleInstructions()
12269 if (isa<InsertElementInst>(it) || isa<CmpInst>(it) || in vectorizeChainsInBlock()