Lines Matching refs:BinaryOperator

48   BinaryOperator *I = dyn_cast<BinaryOperator>(V);  in simplifyValueKnownNonZero()
175 Instruction *InstCombiner::visitMul(BinaryOperator &I) { in visitMul()
190 BinaryOperator *BO = BinaryOperator::CreateNeg(Op0, I.getName()); in visitMul()
206 BinaryOperator *Mul = cast<BinaryOperator>(I.getOperand(0)); in visitMul()
207 BinaryOperator *BO = BinaryOperator::CreateMul(NewOp, Shl); in visitMul()
228 BinaryOperator *Shl = BinaryOperator::CreateShl(NewOp, NewCst); in visitMul()
261 BinaryOperator::CreateMul(Sub, in visitMul()
288 return BinaryOperator::CreateAdd(Builder->CreateMul(X, Op1), Mul); in visitMul()
295 BinaryOperator *BO = BinaryOperator::CreateMul(Op0v, Op1v); in visitMul()
308 BinaryOperator *BO = dyn_cast<BinaryOperator>(Op0); in visitMul()
313 BO = dyn_cast<BinaryOperator>(Op1); in visitMul()
327 return BinaryOperator::CreateNeg(Op0BO); in visitMul()
338 return BinaryOperator::CreateSub(Op0BO, Rem); in visitMul()
339 return BinaryOperator::CreateSub(Rem, Op0BO); in visitMul()
345 return BinaryOperator::CreateAnd(Op0, Op1); in visitMul()
351 BinaryOperator *BO = nullptr; in visitMul()
354 BO = BinaryOperator::CreateShl(Op1, Y); in visitMul()
357 BO = BinaryOperator::CreateShl(Op0, Y); in visitMul()
388 return BinaryOperator::CreateAnd(V, OtherOp); in visitMul()
499 BinaryOperator *R = nullptr; in foldFMulConst()
505 R = BinaryOperator::CreateFMul(C1 ? Opnd0 : Opnd1, F); in foldFMulConst()
513 R = BinaryOperator::CreateFDiv(F, Opnd1); in foldFMulConst()
519 R = BinaryOperator::CreateFMul(Opnd0, F); in foldFMulConst()
524 R = BinaryOperator::CreateFDiv(Opnd0, F); in foldFMulConst()
537 Instruction *InstCombiner::visitFMul(BinaryOperator &I) { in visitFMul()
567 Instruction *RI = BinaryOperator::CreateFSub(NegZero, Op0); in visitFMul()
608 ? BinaryOperator::CreateFAdd(M0, M1) in visitFMul()
609 : BinaryOperator::CreateFSub(M0, M1); in visitFMul()
626 Instruction *FMulVal = BinaryOperator::CreateFMul(II->getOperand(0), in visitFMul()
667 if (BinaryOperator::isFNeg(Opnd0, IgnoreZeroSign)) { in visitFMul()
730 bool InstCombiner::SimplifyDivRemOfSelect(BinaryOperator &I) { in SimplifyDivRemOfSelect()
803 Instruction *InstCombiner::commonIDivTransforms(BinaryOperator &I) { in commonIDivTransforms()
829 return BinaryOperator::Create(I.getOpcode(), X, in commonIDivTransforms()
839 BinaryOperator *BO = BinaryOperator::Create( in commonIDivTransforms()
847 BinaryOperator *BO = BinaryOperator::Create( in commonIDivTransforms()
867 BinaryOperator *BO = BinaryOperator::Create( in commonIDivTransforms()
875 BinaryOperator *BO = BinaryOperator::Create( in commonIDivTransforms()
926 return BinaryOperator::Create(I.getOpcode(), X, Op1); in commonIDivTransforms()
948 const BinaryOperator &I,
975 const BinaryOperator &I, InstCombiner &IC) { in foldUDivPow2Cst()
977 BinaryOperator *LShr = BinaryOperator::CreateLShr( in foldUDivPow2Cst()
986 const BinaryOperator &I, InstCombiner &IC) { in foldUDivNegCst()
994 static Instruction *foldUDivShl(Value *Op0, Value *Op1, const BinaryOperator &I, in foldUDivShl()
1007 BinaryOperator *LShr = BinaryOperator::CreateLShr(Op0, N); in foldUDivShl()
1017 static size_t visitUDivOperand(Value *Op0, Value *Op1, const BinaryOperator &I, in visitUDivOperand()
1056 Instruction *InstCombiner::visitUDiv(BinaryOperator &I) { in visitUDiv()
1079 BinaryOperator *BO = BinaryOperator::CreateUDiv( in visitUDiv()
1129 Instruction *InstCombiner::visitSDiv(BinaryOperator &I) { in visitSDiv()
1146 return BinaryOperator::CreateNeg(Op0); in visitSDiv()
1151 return BinaryOperator::CreateExactAShr(Op0, ShAmt, I.getName()); in visitSDiv()
1180 auto *BO = BinaryOperator::CreateSDiv(X, ConstantExpr::getNeg(RHS)); in visitSDiv()
1193 auto *BO = BinaryOperator::CreateUDiv(Op0, Op1, I.getName()); in visitSDiv()
1203 auto *BO = BinaryOperator::CreateUDiv(Op0, Op1, I.getName()); in visitSDiv()
1240 return BinaryOperator::CreateFMul(Dividend, R); in CvtFDivConstToReciprocal()
1243 Instruction *InstCombiner::visitFDiv(BinaryOperator &I) { in visitFDiv()
1277 Res = BinaryOperator::CreateFMul(X, C); in visitFDiv()
1285 Res = BinaryOperator::CreateFDiv(X, C); in visitFDiv()
1323 Instruction *R = CreateDiv ? BinaryOperator::CreateFDiv(Fold, X) in visitFDiv()
1324 : BinaryOperator::CreateFMul(X, Fold); in visitFDiv()
1346 SimpR = BinaryOperator::CreateFDiv(X, NewInst); in visitFDiv()
1358 SimpR = BinaryOperator::CreateFDiv(NewInst, X); in visitFDiv()
1377 Instruction *InstCombiner::commonIRemTransforms(BinaryOperator &I) { in commonIRemTransforms()
1418 Instruction *InstCombiner::visitURem(BinaryOperator &I) { in visitURem()
1440 return BinaryOperator::CreateAnd(Op0, Add); in visitURem()
1453 Instruction *InstCombiner::visitSRem(BinaryOperator &I) { in visitSRem()
1483 return BinaryOperator::CreateURem(Op0, Op1, I.getName()); in visitSRem()
1528 Instruction *InstCombiner::visitFRem(BinaryOperator &I) { in visitFRem()