Lines Matching refs:BinaryOperator
22 Instruction *InstCombiner::commonShiftTransforms(BinaryOperator &I) {
212 BinaryOperator *BO = cast<BinaryOperator>(I);
254 BinaryOperator *BO = cast<BinaryOperator>(I);
313 BinaryOperator &I) {
345 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(Op0))
348 return BinaryOperator::CreateMul(BO->getOperand(0),
404 if (BinaryOperator *Op0BO = dyn_cast<BinaryOperator>(Op0)) {
425 return BinaryOperator::CreateAnd(X, ConstantInt::get(I.getContext(),
435 cast<BinaryOperator>(Op0BOOp1)->getOperand(0)->hasOneUse()) {
442 return BinaryOperator::Create(Op0BO->getOpcode(), YS, XM);
458 return BinaryOperator::CreateAnd(X, ConstantInt::get(I.getContext(),
467 cast<BinaryOperator>(Op0BO->getOperand(0))
475 return BinaryOperator::Create(Op0BO->getOpcode(), XM, YS);
519 return BinaryOperator::Create(Op0BO->getOpcode(), NewShift,
527 BinaryOperator *ShiftOp = dyn_cast<BinaryOperator>(Op0);
565 return BinaryOperator::Create(I.getOpcode(), X,
574 return BinaryOperator::CreateAnd(X,
589 BinaryOperator *NewShl = BinaryOperator::Create(Instruction::Shl,
602 BinaryOperator *NewLShr = BinaryOperator::Create(Instruction::LShr,
610 return BinaryOperator::CreateAnd(Shift,
621 BinaryOperator *NewAShr = BinaryOperator::Create(Instruction::AShr,
638 BinaryOperator *NewShr = BinaryOperator::Create(ShiftOp->getOpcode(),
650 BinaryOperator *NewShl = BinaryOperator::Create(Instruction::Shl,
658 return BinaryOperator::CreateAnd(Shift,
669 BinaryOperator *NewShl = BinaryOperator::Create(Instruction::Shl,
680 Instruction *InstCombiner::visitShl(BinaryOperator &I) {
713 return BinaryOperator::CreateShl(ConstantExpr::getShl(C1, C2), A);
718 Instruction *InstCombiner::visitLShr(BinaryOperator &I) {
758 Instruction *InstCombiner::visitAShr(BinaryOperator &I) {
804 return BinaryOperator::CreateLShr(Op0, Op1);