Lines Matching refs:WO
3874 auto *WO = dyn_cast<WithOverflowInst>(EV.getAggregateOperand()); in foldExtractOfOverflowIntrinsic() local
3875 if (!WO) in foldExtractOfOverflowIntrinsic()
3878 Intrinsic::ID OvID = WO->getIntrinsicID(); in foldExtractOfOverflowIntrinsic()
3880 if (match(WO->getRHS(), m_APIntAllowPoison(C))) { in foldExtractOfOverflowIntrinsic()
3885 return BinaryOperator::CreateNeg(WO->getLHS()); in foldExtractOfOverflowIntrinsic()
3889 WO->getLHS(), in foldExtractOfOverflowIntrinsic()
3890 ConstantInt::get(WO->getLHS()->getType(), C->logBase2())); in foldExtractOfOverflowIntrinsic()
3898 if (!WO->hasOneUse()) in foldExtractOfOverflowIntrinsic()
3904 Instruction::BinaryOps BinOp = WO->getBinaryOp(); in foldExtractOfOverflowIntrinsic()
3905 Value *LHS = WO->getLHS(), *RHS = WO->getRHS(); in foldExtractOfOverflowIntrinsic()
3907 replaceInstUsesWith(*WO, PoisonValue::get(WO->getType())); in foldExtractOfOverflowIntrinsic()
3908 eraseInstFromFunction(*WO); in foldExtractOfOverflowIntrinsic()
3916 return new ICmpInst(ICmpInst::ICMP_ULT, WO->getLHS(), WO->getRHS()); in foldExtractOfOverflowIntrinsic()
3921 WO->getLHS()->getType()->isIntOrIntVectorTy(1)) in foldExtractOfOverflowIntrinsic()
3922 return BinaryOperator::CreateAnd(WO->getLHS(), WO->getRHS()); in foldExtractOfOverflowIntrinsic()
3925 if (OvID == Intrinsic::umul_with_overflow && WO->getLHS() == WO->getRHS()) { in foldExtractOfOverflowIntrinsic()
3926 unsigned BitWidth = WO->getLHS()->getType()->getScalarSizeInBits(); in foldExtractOfOverflowIntrinsic()
3930 ICmpInst::ICMP_UGT, WO->getLHS(), in foldExtractOfOverflowIntrinsic()
3931 ConstantInt::get(WO->getLHS()->getType(), in foldExtractOfOverflowIntrinsic()
3942 WO->getBinaryOp(), *C, WO->getNoWrapKind()); in foldExtractOfOverflowIntrinsic()
3947 auto *OpTy = WO->getRHS()->getType(); in foldExtractOfOverflowIntrinsic()
3948 auto *NewLHS = WO->getLHS(); in foldExtractOfOverflowIntrinsic()