Lines Matching refs:BO
1524 BinaryOperator *BO = cast<BinaryOperator>(LHSI); in visitICmpInstWithInstAndIntCst() local
1526 if (Instruction *Res = FoldICmpShrCst(ICI, BO, ShAmt)) in visitICmpInstWithInstAndIntCst()
1531 if (ICI.isEquality() && BO->isExact() && BO->hasOneUse()) { in visitICmpInstWithInstAndIntCst()
1533 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), RHS); in visitICmpInstWithInstAndIntCst()
1631 if (BinaryOperator *BO = dyn_cast<BinaryOperator>(LHSI)) { in visitICmpInstWithInstAndIntCst() local
1632 switch (BO->getOpcode()) { in visitICmpInstWithInstAndIntCst()
1635 if (RHSV == 0 && isa<ConstantInt>(BO->getOperand(1)) &&BO->hasOneUse()){ in visitICmpInstWithInstAndIntCst()
1636 const APInt &V = cast<ConstantInt>(BO->getOperand(1))->getValue(); in visitICmpInstWithInstAndIntCst()
1639 Builder->CreateURem(BO->getOperand(0), BO->getOperand(1), in visitICmpInstWithInstAndIntCst()
1640 BO->getName()); in visitICmpInstWithInstAndIntCst()
1642 Constant::getNullValue(BO->getType())); in visitICmpInstWithInstAndIntCst()
1648 if (ConstantInt *BOp1C = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1649 if (BO->hasOneUse()) in visitICmpInstWithInstAndIntCst()
1650 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1655 Value *BOp0 = BO->getOperand(0), *BOp1 = BO->getOperand(1); in visitICmpInstWithInstAndIntCst()
1661 if (BO->hasOneUse()) { in visitICmpInstWithInstAndIntCst()
1663 Neg->takeName(BO); in visitICmpInstWithInstAndIntCst()
1671 if (Constant *BOC = dyn_cast<Constant>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1672 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1676 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1677 BO->getOperand(1)); in visitICmpInstWithInstAndIntCst()
1682 if (ConstantInt *BOp0C = dyn_cast<ConstantInt>(BO->getOperand(0))) { in visitICmpInstWithInstAndIntCst()
1683 if (BO->hasOneUse()) in visitICmpInstWithInstAndIntCst()
1684 return new ICmpInst(ICI.getPredicate(), BO->getOperand(1), in visitICmpInstWithInstAndIntCst()
1688 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
1689 BO->getOperand(1)); in visitICmpInstWithInstAndIntCst()
1695 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1703 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1716 if (!BO->hasOneUse()) in visitICmpInstWithInstAndIntCst()
1721 Value *X = BO->getOperand(0); in visitICmpInstWithInstAndIntCst()
1730 Value *X = BO->getOperand(0); in visitICmpInstWithInstAndIntCst()
1739 if (RHSV == 0 && BO->hasNoSignedWrap()) { in visitICmpInstWithInstAndIntCst()
1740 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) { in visitICmpInstWithInstAndIntCst()
1745 return new ICmpInst(ICI.getPredicate(), BO->getOperand(0), in visitICmpInstWithInstAndIntCst()
2073 } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(U)) { in ProcessUMulZExtIdiom() local
2075 if (BO->getOpcode() != Instruction::And) in ProcessUMulZExtIdiom()
2077 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->getOperand(1))) { in ProcessUMulZExtIdiom()
2198 } else if (BinaryOperator *BO = dyn_cast<BinaryOperator>(U)) { in ProcessUMulZExtIdiom() local
2199 assert(BO->getOpcode() == Instruction::And); in ProcessUMulZExtIdiom()
2201 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1)); in ProcessUMulZExtIdiom()
2205 cast<Instruction>(Builder->CreateZExt(ShortAnd, BO->getType())); in ProcessUMulZExtIdiom()
2207 IC.ReplaceInstUsesWith(*BO, Zext); in ProcessUMulZExtIdiom()