Lines Matching refs:BO

1647     BinaryOperator *BO = cast<BinaryOperator>(LHSI);  in visitICmpInstWithInstAndIntCst()  local
1649 if (Instruction *Res = FoldICmpShrCst(ICI, BO, ShAmt)) in visitICmpInstWithInstAndIntCst()
1654 if (ICI.isEquality() && BO->isExact() && BO->hasOneUse()) { in visitICmpInstWithInstAndIntCst()
1656 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), RHS); in visitICmpInstWithInstAndIntCst()
1754 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(LHSI)) { in visitICmpInstWithInstAndIntCst() local
1755 switch (BO->getOpcode()) { in visitICmpInstWithInstAndIntCst()
1758 if (RHSV == 0 && isa<ConstantInt>(BO->getOperand(1)) &&BO->hasOneUse()){ in visitICmpInstWithInstAndIntCst()
1759 const APInt &V = cast<ConstantInt>(BO->getOperand(1))->getValue(); in visitICmpInstWithInstAndIntCst()
1762 Builder->CreateURem(BO->getOperand(0), BO->getOperand(1), in visitICmpInstWithInstAndIntCst()
1763 BO->getName()); in visitICmpInstWithInstAndIntCst()
1765 Constant::getNullValue(BO->getType())); in visitICmpInstWithInstAndIntCst()
1771 if (ConstantInt *BOp1C = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1772 if (BO->hasOneUse()) in visitICmpInstWithInstAndIntCst()
1773 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1778 Value *BOp0 = BO->getOperand(0), *BOp1 = BO->getOperand(1); in visitICmpInstWithInstAndIntCst()
1784 if (BO->hasOneUse()) { in visitICmpInstWithInstAndIntCst()
1786 Neg->takeName(BO); in visitICmpInstWithInstAndIntCst()
1794 if (Constant *BOC = dyn_cast<Constant>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1795 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1799 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1800 BO->getOperand(1)); in visitICmpInstWithInstAndIntCst()
1805 if (ConstantInt *BOp0C = dyn_cast<ConstantInt>(BO->getOperand(0))) { in visitICmpInstWithInstAndIntCst()
1806 if (BO->hasOneUse()) in visitICmpInstWithInstAndIntCst()
1807 return new ICmpInst(ICI.getPredicate(), BO->getOperand(1), in visitICmpInstWithInstAndIntCst()
1811 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1812 BO->getOperand(1)); in visitICmpInstWithInstAndIntCst()
1818 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1826 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1839 if (!BO->hasOneUse()) in visitICmpInstWithInstAndIntCst()
1844 Value *X = BO->getOperand(0); in visitICmpInstWithInstAndIntCst()
1853 Value *X = BO->getOperand(0); in visitICmpInstWithInstAndIntCst()
1862 if (RHSV == 0 && BO->hasNoSignedWrap()) { in visitICmpInstWithInstAndIntCst()
1863 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1868 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
2278 } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(U)) { in ProcessUMulZExtIdiom() local
2280 if (BO->getOpcode() != Instruction::And) in ProcessUMulZExtIdiom()
2282 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->getOperand(1))) { in ProcessUMulZExtIdiom()
2403 } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(U)) { in ProcessUMulZExtIdiom() local
2404 assert(BO->getOpcode() == Instruction::And); in ProcessUMulZExtIdiom()
2406 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1)); in ProcessUMulZExtIdiom()
2410 cast<Instruction>(Builder->CreateZExt(ShortAnd, BO->getType())); in ProcessUMulZExtIdiom()
2412 IC.ReplaceInstUsesWith(*BO, Zext); in ProcessUMulZExtIdiom()