Lines Matching refs:IE
248 } else if (InsertElementInst *IE = dyn_cast<InsertElementInst>(I)) { in visitExtractElementInst() local
250 if (IE->getOperand(2) == EI.getOperand(1)) in visitExtractElementInst()
251 return ReplaceInstUsesWith(EI, IE->getOperand(1)); in visitExtractElementInst()
254 if (isa<Constant>(IE->getOperand(2)) && isa<Constant>(EI.getOperand(1))) { in visitExtractElementInst()
256 EI.setOperand(0, IE->getOperand(0)); in visitExtractElementInst()
529 Instruction *InstCombiner::visitInsertElementInst(InsertElementInst &IE) { in visitInsertElementInst() argument
530 Value *VecOp = IE.getOperand(0); in visitInsertElementInst()
531 Value *ScalarOp = IE.getOperand(1); in visitInsertElementInst()
532 Value *IdxOp = IE.getOperand(2); in visitInsertElementInst()
536 ReplaceInstUsesWith(IE, VecOp); in visitInsertElementInst()
542 unsigned NumInsertVectorElts = IE.getType()->getNumElements(); in visitInsertElementInst()
550 return ReplaceInstUsesWith(IE, VecOp); in visitInsertElementInst()
553 return ReplaceInstUsesWith(IE, UndefValue::get(IE.getType())); in visitInsertElementInst()
558 return ReplaceInstUsesWith(IE, VecOp); in visitInsertElementInst()
562 if (!IE.hasOneUse() || !isa<InsertElementInst>(IE.user_back())) { in visitInsertElementInst()
564 ShuffleOps LR = CollectShuffleElements(&IE, Mask, nullptr); in visitInsertElementInst()
568 if (LR.first != &IE && LR.second != &IE) { in visitInsertElementInst()
582 if (Value *V = SimplifyDemandedVectorElts(&IE, AllOnesEltMask, UndefElts)) { in visitInsertElementInst()
583 if (V != &IE) in visitInsertElementInst()
584 return ReplaceInstUsesWith(IE, V); in visitInsertElementInst()
585 return &IE; in visitInsertElementInst()