Lines Matching refs:IE

199     } else if (InsertElementInst *IE = dyn_cast<InsertElementInst>(I)) {  in visitExtractElementInst()  local
201 if (IE->getOperand(2) == EI.getOperand(1)) in visitExtractElementInst()
202 return ReplaceInstUsesWith(EI, IE->getOperand(1)); in visitExtractElementInst()
205 if (isa<Constant>(IE->getOperand(2)) && isa<Constant>(EI.getOperand(1))) { in visitExtractElementInst()
207 EI.setOperand(0, IE->getOperand(0)); in visitExtractElementInst()
480 Instruction *InstCombiner::visitInsertElementInst(InsertElementInst &IE) { in visitInsertElementInst() argument
481 Value *VecOp = IE.getOperand(0); in visitInsertElementInst()
482 Value *ScalarOp = IE.getOperand(1); in visitInsertElementInst()
483 Value *IdxOp = IE.getOperand(2); in visitInsertElementInst()
487 ReplaceInstUsesWith(IE, VecOp); in visitInsertElementInst()
493 unsigned NumInsertVectorElts = IE.getType()->getNumElements(); in visitInsertElementInst()
501 return ReplaceInstUsesWith(IE, VecOp); in visitInsertElementInst()
504 return ReplaceInstUsesWith(IE, UndefValue::get(IE.getType())); in visitInsertElementInst()
509 return ReplaceInstUsesWith(IE, VecOp); in visitInsertElementInst()
513 if (!IE.hasOneUse() || !isa<InsertElementInst>(IE.user_back())) { in visitInsertElementInst()
515 ShuffleOps LR = CollectShuffleElements(&IE, Mask, nullptr); in visitInsertElementInst()
519 if (LR.first != &IE && LR.second != &IE) { in visitInsertElementInst()
533 if (Value *V = SimplifyDemandedVectorElts(&IE, AllOnesEltMask, UndefElts)) { in visitInsertElementInst()
534 if (V != &IE) in visitInsertElementInst()
535 return ReplaceInstUsesWith(IE, V); in visitInsertElementInst()
536 return &IE; in visitInsertElementInst()