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