Lines Matching refs:BO
1681 auto *BO = dyn_cast<BinaryOperator>(FPT.getOperand(0)); in visitFPTrunc() local
1682 if (BO && BO->hasOneUse()) { in visitFPTrunc()
1683 Type *LHSMinType = getMinimumFPType(BO->getOperand(0)); in visitFPTrunc()
1684 Type *RHSMinType = getMinimumFPType(BO->getOperand(1)); in visitFPTrunc()
1685 unsigned OpWidth = BO->getType()->getFPMantissaWidth(); in visitFPTrunc()
1690 switch (BO->getOpcode()) { in visitFPTrunc()
1713 Value *LHS = Builder.CreateFPTrunc(BO->getOperand(0), Ty); in visitFPTrunc()
1714 Value *RHS = Builder.CreateFPTrunc(BO->getOperand(1), Ty); in visitFPTrunc()
1715 Instruction *RI = BinaryOperator::Create(BO->getOpcode(), LHS, RHS); in visitFPTrunc()
1716 RI->copyFastMathFlags(BO); in visitFPTrunc()
1727 Value *LHS = Builder.CreateFPTrunc(BO->getOperand(0), Ty); in visitFPTrunc()
1728 Value *RHS = Builder.CreateFPTrunc(BO->getOperand(1), Ty); in visitFPTrunc()
1729 return BinaryOperator::CreateFMulFMF(LHS, RHS, BO); in visitFPTrunc()
1740 Value *LHS = Builder.CreateFPTrunc(BO->getOperand(0), Ty); in visitFPTrunc()
1741 Value *RHS = Builder.CreateFPTrunc(BO->getOperand(1), Ty); in visitFPTrunc()
1742 return BinaryOperator::CreateFDivFMF(LHS, RHS, BO); in visitFPTrunc()
1754 LHS = Builder.CreateFPTrunc(BO->getOperand(0), LHSMinType); in visitFPTrunc()
1755 RHS = Builder.CreateFPTrunc(BO->getOperand(1), LHSMinType); in visitFPTrunc()
1757 LHS = Builder.CreateFPTrunc(BO->getOperand(0), RHSMinType); in visitFPTrunc()
1758 RHS = Builder.CreateFPTrunc(BO->getOperand(1), RHSMinType); in visitFPTrunc()
1761 Value *ExactResult = Builder.CreateFRemFMF(LHS, RHS, BO); in visitFPTrunc()
2283 BinaryOperator *BO; in foldBitCastBitwiseLogic() local
2285 if (!match(BitCast.getOperand(0), m_OneUse(m_BinOp(BO))) || in foldBitCastBitwiseLogic()
2286 !BO->isBitwiseLogicOp()) in foldBitCastBitwiseLogic()
2292 if (!DestTy->isVectorTy() || !BO->getType()->isVectorTy()) in foldBitCastBitwiseLogic()
2298 if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic()
2299 match(BO->getOperand(1), m_OneUse(m_BitCast(m_Value(Y))))) { in foldBitCastBitwiseLogic()
2303 Builder.CreateBitCast(BO->getOperand(0), Y->getType()); in foldBitCastBitwiseLogic()
2304 Value *NewBO = Builder.CreateBinOp(BO->getOpcode(), CastedOp, Y); in foldBitCastBitwiseLogic()
2310 Builder.CreateBitCast(BO->getOperand(1), X->getType()); in foldBitCastBitwiseLogic()
2311 Value *NewBO = Builder.CreateBinOp(BO->getOpcode(), CastedOp, X); in foldBitCastBitwiseLogic()
2322 if (match(BO->getOperand(0), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic()
2325 Value *CastedOp1 = Builder.CreateBitCast(BO->getOperand(1), DestTy); in foldBitCastBitwiseLogic()
2326 return BinaryOperator::Create(BO->getOpcode(), X, CastedOp1); in foldBitCastBitwiseLogic()
2329 if (match(BO->getOperand(1), m_OneUse(m_BitCast(m_Value(X)))) && in foldBitCastBitwiseLogic()
2332 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2333 return BinaryOperator::Create(BO->getOpcode(), CastedOp0, X); in foldBitCastBitwiseLogic()
2341 if (match(BO->getOperand(1), m_Constant(C))) { in foldBitCastBitwiseLogic()
2343 Value *CastedOp0 = Builder.CreateBitCast(BO->getOperand(0), DestTy); in foldBitCastBitwiseLogic()
2345 return BinaryOperator::Create(BO->getOpcode(), CastedOp0, CastedC); in foldBitCastBitwiseLogic()