Lines Matching refs:BinaryOperator

70   BinaryOperator *I = dyn_cast<BinaryOperator>(V);  in simplifyValueKnownNonZero()
128 Instruction *InstCombiner::visitMul(BinaryOperator &I) { in visitMul()
145 BinaryOperator *BO = BinaryOperator::CreateNeg(Op0, I.getName()); in visitMul()
161 BinaryOperator *Mul = cast<BinaryOperator>(I.getOperand(0)); in visitMul()
162 BinaryOperator *BO = BinaryOperator::CreateMul(NewOp, Shl); in visitMul()
174 BinaryOperator *Shl = BinaryOperator::CreateShl(NewOp, NewCst); in visitMul()
207 BinaryOperator::CreateMul(Sub, in visitMul()
227 return BinaryOperator::CreateAdd(Builder.CreateMul(X, Op1), Mul); in visitMul()
235 return BinaryOperator::CreateMul(X, ConstantExpr::getNeg(Op1C)); in visitMul()
239 auto *NewMul = BinaryOperator::CreateMul(X, Y); in visitMul()
250 return BinaryOperator::CreateNeg(Builder.CreateMul(X, Y)); in visitMul()
256 BinaryOperator *Div = dyn_cast<BinaryOperator>(Op0); in visitMul()
260 Div = dyn_cast<BinaryOperator>(Op1); in visitMul()
273 return BinaryOperator::CreateNeg(X); in visitMul()
280 return BinaryOperator::CreateSub(X, Rem); in visitMul()
281 return BinaryOperator::CreateSub(Rem, X); in visitMul()
287 return BinaryOperator::CreateAnd(Op0, Op1); in visitMul()
293 BinaryOperator *BO = nullptr; in visitMul()
296 BO = BinaryOperator::CreateShl(Op1, Y); in visitMul()
299 BO = BinaryOperator::CreateShl(Op0, Y); in visitMul()
326 return BinaryOperator::CreateAnd(Builder.CreateAShr(X, *C), Op1); in visitMul()
328 return BinaryOperator::CreateAnd(Builder.CreateAShr(X, *C), Op0); in visitMul()
347 Instruction *InstCombiner::visitFMul(BinaryOperator &I) { in visitFMul()
365 return BinaryOperator::CreateFNegFMF(Op0, &I); in visitFMul()
370 return BinaryOperator::CreateFMulFMF(X, Y, &I); in visitFMul()
375 return BinaryOperator::CreateFMulFMF(X, ConstantExpr::getFNeg(C), &I); in visitFMul()
379 return BinaryOperator::CreateFNegFMF(Builder.CreateFMulFMF(X, Op1, &I), &I); in visitFMul()
383 return BinaryOperator::CreateFNegFMF(Builder.CreateFMulFMF(X, Op0, &I), &I); in visitFMul()
387 return BinaryOperator::CreateFMulFMF(X, X, &I); in visitFMul()
402 return BinaryOperator::CreateFDivFMF(CC1, X, &I); in visitFMul()
408 return BinaryOperator::CreateFMulFMF(X, CDivC1, &I); in visitFMul()
414 return BinaryOperator::CreateFDivFMF(X, C1DivC, &I); in visitFMul()
424 return BinaryOperator::CreateFAddFMF(XC, CC1, &I); in visitFMul()
430 return BinaryOperator::CreateFSubFMF(CC1, XC, &I); in visitFMul()
455 return BinaryOperator::CreateFMulFMF(XX, Y, &I); in visitFMul()
460 return BinaryOperator::CreateFMulFMF(XX, Y, &I); in visitFMul()
481 return BinaryOperator::CreateFSubFMF(LogXTimesY, Y, &I); in visitFMul()
491 bool InstCombiner::simplifyDivRemOfSelectWithZeroOp(BinaryOperator &I) { in simplifyDivRemOfSelectWithZeroOp()
592 Instruction *InstCombiner::commonIDivTransforms(BinaryOperator &I) { in commonIDivTransforms()
618 return BinaryOperator::Create(I.getOpcode(), X, in commonIDivTransforms()
628 auto *NewDiv = BinaryOperator::Create(I.getOpcode(), X, in commonIDivTransforms()
636 auto *Mul = BinaryOperator::Create(Instruction::Mul, X, in commonIDivTransforms()
654 auto *BO = BinaryOperator::Create(I.getOpcode(), X, in commonIDivTransforms()
662 auto *Mul = BinaryOperator::Create(Instruction::Mul, X, in commonIDivTransforms()
701 return BinaryOperator::Create(I.getOpcode(), X, Op1); in commonIDivTransforms()
706 return BinaryOperator::CreateNSWShl(ConstantInt::get(Ty, 1), Y); in commonIDivTransforms()
708 return BinaryOperator::CreateNUWShl(ConstantInt::get(Ty, 1), Y); in commonIDivTransforms()
729 const BinaryOperator &I,
759 const BinaryOperator &I, InstCombiner &IC) { in foldUDivPow2Cst()
763 BinaryOperator *LShr = BinaryOperator::CreateLShr(Op0, C1); in foldUDivPow2Cst()
771 static Instruction *foldUDivShl(Value *Op0, Value *Op1, const BinaryOperator &I, in foldUDivShl()
787 BinaryOperator *LShr = BinaryOperator::CreateLShr(Op0, N); in foldUDivShl()
797 static size_t visitUDivOperand(Value *Op0, Value *Op1, const BinaryOperator &I, in visitUDivOperand()
831 static Instruction *narrowUDivURem(BinaryOperator &I, in narrowUDivURem()
866 Instruction *InstCombiner::visitUDiv(BinaryOperator &I) { in visitUDiv()
887 BinaryOperator *BO = BinaryOperator::CreateUDiv( in visitUDiv()
920 return BinaryOperator::CreateUDiv(B, X); in visitUDiv()
923 return BinaryOperator::CreateUDiv(A, X); in visitUDiv()
960 Instruction *InstCombiner::visitSDiv(BinaryOperator &I) { in visitSDiv()
978 return BinaryOperator::CreateNeg(Op0); in visitSDiv()
985 return BinaryOperator::CreateExactAShr(Op0, ShAmt, I.getName()); in visitSDiv()
1014 auto *BO = BinaryOperator::CreateSDiv(X, ConstantExpr::getNeg(RHS)); in visitSDiv()
1026 auto *BO = BinaryOperator::CreateUDiv(Op0, Op1, I.getName()); in visitSDiv()
1036 auto *BO = BinaryOperator::CreateUDiv(Op0, Op1, I.getName()); in visitSDiv()
1046 static Instruction *foldFDivConstantDivisor(BinaryOperator &I) { in foldFDivConstantDivisor()
1054 return BinaryOperator::CreateFDivFMF(X, ConstantExpr::getFNeg(C), &I); in foldFDivConstantDivisor()
1071 return BinaryOperator::CreateFMulFMF(I.getOperand(0), RecipC, &I); in foldFDivConstantDivisor()
1075 static Instruction *foldFDivConstantDividend(BinaryOperator &I) { in foldFDivConstantDividend()
1083 return BinaryOperator::CreateFDivFMF(ConstantExpr::getFNeg(C), X, &I); in foldFDivConstantDividend()
1104 return BinaryOperator::CreateFDivFMF(NewC, X, &I); in foldFDivConstantDividend()
1107 Instruction *InstCombiner::visitFDiv(BinaryOperator &I) { in visitFDiv()
1139 return BinaryOperator::CreateFDivFMF(X, YZ, &I); in visitFDiv()
1145 return BinaryOperator::CreateFDivFMF(YZ, X, &I); in visitFDiv()
1198 Instruction *InstCombiner::commonIRemTransforms(BinaryOperator &I) { in commonIRemTransforms()
1238 Instruction *InstCombiner::visitURem(BinaryOperator &I) { in visitURem()
1258 return BinaryOperator::CreateAnd(Op0, Add); in visitURem()
1285 Instruction *InstCombiner::visitSRem(BinaryOperator &I) { in visitSRem()
1314 return BinaryOperator::CreateURem(Op0, Op1, I.getName()); in visitSRem()
1358 Instruction *InstCombiner::visitFRem(BinaryOperator &I) { in visitFRem()