Lines Matching refs:BinaryOperator
86 Instruction *InstCombiner::visitAdd(BinaryOperator &I) { in visitAdd()
102 return BinaryOperator::CreateXor(LHS, RHS); in visitAdd()
137 return BinaryOperator::CreateAShr(NewShl, ShAmt); in visitAdd()
148 return BinaryOperator::CreateSub(ConstantExpr::getAdd(XorRHS, CI), in visitAdd()
159 return BinaryOperator::CreateXor(LHS, RHS); in visitAdd()
163 BinaryOperator *New = in visitAdd()
164 BinaryOperator::CreateShl(LHS, ConstantInt::get(I.getType(), 1)); in visitAdd()
175 return BinaryOperator::CreateNeg(NewAdd); in visitAdd()
178 return BinaryOperator::CreateSub(RHS, LHSV); in visitAdd()
184 return BinaryOperator::CreateSub(LHS, V); in visitAdd()
190 return BinaryOperator::CreateMul(RHS, AddOne(C2)); in visitAdd()
195 return BinaryOperator::CreateMul(X, ConstantExpr::getAdd(C1, C2)); in visitAdd()
200 return BinaryOperator::CreateMul(LHS, AddOne(C2)); in visitAdd()
214 return BinaryOperator::CreateOr(LHS, RHS); in visitAdd()
236 return BinaryOperator::CreateMul(W, NewAdd); in visitAdd()
244 return BinaryOperator::CreateSub(SubOne(CRHS), X); in visitAdd()
263 return BinaryOperator::CreateAnd(NewAdd, C2); in visitAdd()
335 Instruction *InstCombiner::visitFAdd(BinaryOperator &I) { in visitFAdd()
355 return BinaryOperator::CreateFSub(RHS, LHSV); in visitFAdd()
360 return BinaryOperator::CreateFSub(LHS, V); in visitFAdd()
540 Instruction *InstCombiner::visitSub(BinaryOperator &I) { in visitSub()
553 BinaryOperator *Res = BinaryOperator::CreateAdd(Op0, V); in visitSub()
560 return BinaryOperator::CreateXor(Op0, Op1); in visitSub()
564 return BinaryOperator::CreateNot(Op1); in visitSub()
570 return BinaryOperator::CreateAdd(X, AddOne(C)); in visitSub()
579 return BinaryOperator::CreateAShr(X, CI); in visitSub()
584 return BinaryOperator::CreateLShr(X, CI); in visitSub()
600 return BinaryOperator::CreateSub(ConstantExpr::getSub(C, C2), X); in visitSub()
611 return BinaryOperator::CreateNeg(Y); in visitSub()
615 return BinaryOperator::CreateNeg(Y); in visitSub()
625 return BinaryOperator::CreateAdd(Op0, in visitSub()
632 return BinaryOperator::CreateAnd(Op0, in visitSub()
638 return BinaryOperator::CreateSDiv(X, ConstantExpr::getNeg(C)); in visitSub()
643 return BinaryOperator::CreateShl(XNeg, Y); in visitSub()
648 return BinaryOperator::CreateMul(Op0, CP1); in visitSub()
655 return BinaryOperator::CreateMul(Op0, C); in visitSub()
663 return BinaryOperator::CreateAdd(Op0, Builder->CreateMul(A, B)); in visitSub()
670 return BinaryOperator::CreateAdd(Op0, NewMul); in visitSub()
677 return BinaryOperator::CreateMul(Op1, SubOne(C1)); in visitSub()
681 return BinaryOperator::CreateMul(X, ConstantExpr::getSub(C1, C2)); in visitSub()
703 Instruction *InstCombiner::visitFSub(BinaryOperator &I) { in visitFSub()
708 return BinaryOperator::CreateFAdd(Op0, V); in visitFSub()