Lines Matching defs:EV
3873 InstCombinerImpl::foldExtractOfOverflowIntrinsic(ExtractValueInst &EV) {
3874 auto *WO = dyn_cast<WithOverflowInst>(EV.getAggregateOperand());
3881 if (*EV.idx_begin() == 0 && (OvID == Intrinsic::smul_with_overflow ||
3903 if (*EV.idx_begin() == 0) {
3912 assert(*EV.idx_begin() == 1 && "Unexpected extract index for overflow inst");
3958 Instruction *InstCombinerImpl::visitExtractValueInst(ExtractValueInst &EV) {
3959 Value *Agg = EV.getAggregateOperand();
3961 if (!EV.hasIndices())
3962 return replaceInstUsesWith(EV, Agg);
3964 if (Value *V = simplifyExtractValueInst(Agg, EV.getIndices(),
3965 SQ.getWithInstruction(&EV)))
3966 return replaceInstUsesWith(EV, V);
3971 for (exti = EV.idx_begin(), insi = IV->idx_begin(),
3972 exte = EV.idx_end(), inse = IV->idx_end();
3985 EV.getIndices());
3992 return replaceInstUsesWith(EV, IV->getInsertedValueOperand());
4003 EV.getIndices());
4020 if (Instruction *R = foldExtractOfOverflowIntrinsic(EV))
4039 for (unsigned Idx : EV.indices())
4047 Instruction *NL = Builder.CreateLoad(EV.getType(), GEP);
4053 return replaceInstUsesWith(EV, NL);
4058 if (Instruction *Res = foldOpIntoPhi(EV, PN))
4064 if (Instruction *R = FoldOpIntoSelect(EV, SI, /*FoldWithMultiUse=*/true))