Lines Matching refs:BinaryOperator
24 Instruction *InstCombiner::commonShiftTransforms(BinaryOperator &I) {
219 BinaryOperator *BO = cast<BinaryOperator>(I);
261 BinaryOperator *BO = cast<BinaryOperator>(I);
322 BinaryOperator &I) {
355 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(Op0))
358 return BinaryOperator::CreateMul(BO->getOperand(0),
414 if (BinaryOperator *Op0BO = dyn_cast<BinaryOperator>(Op0)) {
440 return BinaryOperator::CreateAnd(X, Mask);
455 return BinaryOperator::Create(Op0BO->getOpcode(), YS, XM);
476 return BinaryOperator::CreateAnd(X, Mask);
490 return BinaryOperator::Create(Op0BO->getOpcode(), XM, YS);
534 return BinaryOperator::Create(Op0BO->getOpcode(), NewShift,
542 BinaryOperator *ShiftOp = dyn_cast<BinaryOperator>(Op0);
580 return BinaryOperator::Create(I.getOpcode(), X,
589 return BinaryOperator::CreateAnd(X,
604 BinaryOperator *NewShl = BinaryOperator::Create(Instruction::Shl,
617 BinaryOperator *NewLShr = BinaryOperator::Create(Instruction::LShr,
625 return BinaryOperator::CreateAnd(Shift,
636 BinaryOperator *NewAShr = BinaryOperator::Create(Instruction::AShr,
653 BinaryOperator *NewShr = BinaryOperator::Create(ShiftOp->getOpcode(),
665 BinaryOperator *NewShl = BinaryOperator::Create(Instruction::Shl,
673 return BinaryOperator::CreateAnd(Shift,
684 BinaryOperator *NewShl = BinaryOperator::Create(Instruction::Shl,
695 Instruction *InstCombiner::visitShl(BinaryOperator &I) {
732 return BinaryOperator::CreateShl(ConstantExpr::getShl(C1, C2), A);
737 Instruction *InstCombiner::visitLShr(BinaryOperator &I) {
781 Instruction *InstCombiner::visitAShr(BinaryOperator &I) {
827 return BinaryOperator::CreateLShr(Op0, Op1);