Lines Matching refs:IE
214 } else if (InsertElementInst *IE = dyn_cast<InsertElementInst>(I)) {
216 if (IE->getOperand(2) == EI.getOperand(1))
217 return replaceInstUsesWith(EI, IE->getOperand(1));
220 if (isa<Constant>(IE->getOperand(2)) && isa<Constant>(EI.getOperand(1))) {
222 EI.setOperand(0, IE->getOperand(0));
569 Instruction *InstCombiner::visitInsertElementInst(InsertElementInst &IE) {
570 Value *VecOp = IE.getOperand(0);
571 Value *ScalarOp = IE.getOperand(1);
572 Value *IdxOp = IE.getOperand(2);
576 replaceInstUsesWith(IE, VecOp);
582 unsigned NumInsertVectorElts = IE.getType()->getNumElements();
590 return replaceInstUsesWith(IE, VecOp);
593 return replaceInstUsesWith(IE, UndefValue::get(IE.getType()));
598 return replaceInstUsesWith(IE, VecOp);
602 if (!IE.hasOneUse() || !isa<InsertElementInst>(IE.user_back())) {
604 ShuffleOps LR = collectShuffleElements(&IE, Mask, nullptr, *this);
608 if (LR.first != &IE && LR.second != &IE) {
622 if (Value *V = SimplifyDemandedVectorElts(&IE, AllOnesEltMask, UndefElts)) {
623 if (V != &IE)
624 return replaceInstUsesWith(IE, V);
625 return &IE;