Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:BinaryOperator

86 Instruction *InstCombiner::visitAdd(BinaryOperator &I) {
102 return BinaryOperator::CreateXor(LHS, RHS);
137 return BinaryOperator::CreateAShr(NewShl, ShAmt);
148 return BinaryOperator::CreateSub(ConstantExpr::getAdd(XorRHS, CI),
159 return BinaryOperator::CreateXor(LHS, RHS);
163 BinaryOperator *New =
164 BinaryOperator::CreateShl(LHS, ConstantInt::get(I.getType(), 1));
176 return BinaryOperator::CreateNeg(NewAdd);
179 return BinaryOperator::CreateSub(RHS, LHSV);
185 return BinaryOperator::CreateSub(LHS, V);
191 return BinaryOperator::CreateMul(RHS, AddOne(C2));
196 return BinaryOperator::CreateMul(X, ConstantExpr::getAdd(C1, C2));
201 return BinaryOperator::CreateMul(LHS, AddOne(C2));
215 return BinaryOperator::CreateOr(LHS, RHS);
237 return BinaryOperator::CreateMul(W, NewAdd);
245 return BinaryOperator::CreateSub(SubOne(CRHS), X);
264 return BinaryOperator::CreateAnd(NewAdd, C2);
339 return BinaryOperator::CreateOr(A, B);
344 return BinaryOperator::CreateOr(A, B);
350 Instruction *InstCombiner::visitFAdd(BinaryOperator &I) {
370 return BinaryOperator::CreateFSub(RHS, LHSV);
375 return BinaryOperator::CreateFSub(LHS, V);
495 Instruction *InstCombiner::visitSub(BinaryOperator &I) {
508 BinaryOperator *Res = BinaryOperator::CreateAdd(Op0, V);
515 return BinaryOperator::CreateXor(Op0, Op1);
519 return BinaryOperator::CreateNot(Op1);
525 return BinaryOperator::CreateAdd(X, AddOne(C));
534 return BinaryOperator::CreateAShr(X, CI);
539 return BinaryOperator::CreateLShr(X, CI);
550 return BinaryOperator::CreateSub(ConstantExpr::getSub(C, C2), X);
561 return BinaryOperator::CreateNeg(Y);
565 return BinaryOperator::CreateNeg(Y);
575 return BinaryOperator::CreateAdd(Op0,
582 return BinaryOperator::CreateAnd(Op0,
588 return BinaryOperator::CreateSDiv(X, ConstantExpr::getNeg(C));
593 return BinaryOperator::CreateShl(XNeg, Y);
598 return BinaryOperator::CreateMul(Op0, CP1);
605 return BinaryOperator::CreateMul(Op0, C);
613 return BinaryOperator::CreateAdd(Op0, Builder->CreateMul(A, B));
620 return BinaryOperator::CreateAdd(Op0, NewMul);
627 return BinaryOperator::CreateMul(Op1, SubOne(C1));
631 return BinaryOperator::CreateMul(X, ConstantExpr::getSub(C1, C2));
653 Instruction *InstCombiner::visitFSub(BinaryOperator &I) {
658 return BinaryOperator::CreateFAdd(Op0, V);