Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:BinaryOperator

47   if (BinaryOperator *I = dyn_cast<BinaryOperator>(V))
99 Instruction *InstCombiner::visitMul(BinaryOperator &I) {
110 return BinaryOperator::CreateNeg(Op0, I.getName());
115 if (BinaryOperator *SI = dyn_cast<BinaryOperator>(Op0))
118 return BinaryOperator::CreateMul(SI->getOperand(0),
124 BinaryOperator *Shl = BinaryOperator::CreateShl(Op0, NewCst);
135 return BinaryOperator::CreateAdd(Add, Builder->CreateMul(C1, CI));
156 BinaryOperator::CreateMul(Sub,
177 return BinaryOperator::CreateMul(Op0v, Op1v);
183 BinaryOperator *BO = dyn_cast<BinaryOperator>(Op0);
188 BO = dyn_cast<BinaryOperator>(Op1);
202 return BinaryOperator::CreateNeg(Op0BO);
213 return BinaryOperator::CreateSub(Op0BO, Rem);
214 return BinaryOperator::CreateSub(Rem, Op0BO);
220 return BinaryOperator::CreateAnd(Op0, Op1);
227 return BinaryOperator::CreateShl(Op1, Y);
229 return BinaryOperator::CreateShl(Op0, Y);
248 return BinaryOperator::CreateAnd(V, OtherOp);
255 Instruction *InstCombiner::visitFMul(BinaryOperator &I) {
285 return BinaryOperator::CreateFMul(Op0v, Op1v);
292 bool InstCombiner::SimplifyDivRemOfSelect(BinaryOperator &I) {
366 Instruction *InstCombiner::commonIDivTransforms(BinaryOperator &I) {
388 return BinaryOperator::Create(I.getOpcode(), LHS->getOperand(0),
412 return BinaryOperator::Create(I.getOpcode(), X, Op1);
431 Instruction *InstCombiner::visitUDiv(BinaryOperator &I) {
447 BinaryOperator *LShr =
448 BinaryOperator::CreateLShr(Op0,
471 return BinaryOperator::CreateUDiv(X, Builder->getInt(NC));
484 return BinaryOperator::CreateExactLShr(Op0, N);
485 return BinaryOperator::CreateLShr(Op0, N);
516 Instruction *InstCombiner::visitSDiv(BinaryOperator &I) {
529 return BinaryOperator::CreateNeg(Op0);
536 return BinaryOperator::CreateExactAShr(Op0, ShAmt, I.getName());
542 return BinaryOperator::CreateSDiv(Sub->getOperand(1),
553 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
561 return BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
569 Instruction *InstCombiner::visitFDiv(BinaryOperator &I) {
583 return BinaryOperator::CreateFMul(Op0, RFP);
594 Instruction *InstCombiner::commonIRemTransforms(BinaryOperator &I) {
626 Instruction *InstCombiner::visitURem(BinaryOperator &I) {
638 return BinaryOperator::CreateAnd(Op0,
646 return BinaryOperator::CreateAnd(Op0, Add);
669 Instruction *InstCombiner::visitSRem(BinaryOperator &I) {
695 return BinaryOperator::CreateURem(Op0, Op1, I.getName());
740 Instruction *InstCombiner::visitFRem(BinaryOperator &I) {