Lines Matching refs:BO

1722   auto *BO = dyn_cast<BinaryOperator>(FPT.getOperand(0));  in visitFPTrunc()  local
1723 if (BO && BO->hasOneUse()) { in visitFPTrunc()
1725 getMinimumFPType(BO->getOperand(0), /*PreferBFloat=*/Ty->isBFloatTy()); in visitFPTrunc()
1727 getMinimumFPType(BO->getOperand(1), /*PreferBFloat=*/Ty->isBFloatTy()); in visitFPTrunc()
1728 unsigned OpWidth = BO->getType()->getFPMantissaWidth(); in visitFPTrunc()
1733 switch (BO->getOpcode()) { in visitFPTrunc()
1756 Value *LHS = Builder.CreateFPTrunc(BO->getOperand(0), Ty); in visitFPTrunc()
1757 Value *RHS = Builder.CreateFPTrunc(BO->getOperand(1), Ty); in visitFPTrunc()
1758 Instruction *RI = BinaryOperator::Create(BO->getOpcode(), LHS, RHS); in visitFPTrunc()
1759 RI->copyFastMathFlags(BO); in visitFPTrunc()
1770 Value *LHS = Builder.CreateFPTrunc(BO->getOperand(0), Ty); in visitFPTrunc()
1771 Value *RHS = Builder.CreateFPTrunc(BO->getOperand(1), Ty); in visitFPTrunc()
1772 return BinaryOperator::CreateFMulFMF(LHS, RHS, BO); in visitFPTrunc()
1783 Value *LHS = Builder.CreateFPTrunc(BO->getOperand(0), Ty); in visitFPTrunc()
1784 Value *RHS = Builder.CreateFPTrunc(BO->getOperand(1), Ty); in visitFPTrunc()
1785 return BinaryOperator::CreateFDivFMF(LHS, RHS, BO); in visitFPTrunc()
1797 LHS = Builder.CreateFPTrunc(BO->getOperand(0), LHSMinType); in visitFPTrunc()
1798 RHS = Builder.CreateFPTrunc(BO->getOperand(1), LHSMinType); in visitFPTrunc()
1800 LHS = Builder.CreateFPTrunc(BO->getOperand(0), RHSMinType); in visitFPTrunc()
1801 RHS = Builder.CreateFPTrunc(BO->getOperand(1), RHSMinType); in visitFPTrunc()
1804 Value *ExactResult = Builder.CreateFRemFMF(LHS, RHS, BO); in visitFPTrunc()
2373 BinaryOperator *BO; in foldBitCastBitwiseLogic() local
2375 if (!match(BitCast.getOperand(0), m_OneUse(m_BinOp(BO))) || in foldBitCastBitwiseLogic()
2376 !BO->isBitwiseLogicOp()) in foldBitCastBitwiseLogic()
2382 if (!DestTy->isVectorTy() || !BO->getType()->isVectorTy()) in foldBitCastBitwiseLogic()
2388 if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic()
2389 match(BO->getOperand(1), m_OneUse(m_BitCast(m_Value(Y))))) { in foldBitCastBitwiseLogic()
2393 Builder.CreateBitCast(BO->getOperand(0), Y->getType()); in foldBitCastBitwiseLogic()
2394 Value *NewBO = Builder.CreateBinOp(BO->getOpcode(), CastedOp, Y); in foldBitCastBitwiseLogic()
2400 Builder.CreateBitCast(BO->getOperand(1), X->getType()); in foldBitCastBitwiseLogic()
2401 Value *NewBO = Builder.CreateBinOp(BO->getOpcode(), CastedOp, X); in foldBitCastBitwiseLogic()
2412 if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic()
2415 Value *CastedOp1 = Builder.CreateBitCast(BO->getOperand(1), DestTy); in foldBitCastBitwiseLogic()
2416 return BinaryOperator::Create(BO->getOpcode(), X, CastedOp1); in foldBitCastBitwiseLogic()
2419 if (match(BO->getOperand(1), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic()
2422 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2423 return BinaryOperator::Create(BO->getOpcode(), CastedOp0, X); in foldBitCastBitwiseLogic()
2431 if (match(BO->getOperand(1), m_Constant(C))) { in foldBitCastBitwiseLogic()
2433 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2435 return BinaryOperator::Create(BO->getOpcode(), CastedOp0, CastedC); in foldBitCastBitwiseLogic()