llvm::PatternMatch::OverflowingBinaryOp_match

Matches an overflowing binary op with required no-wrap flags.

Synopsis

Declared in <llvm/IR/PatternMatch.h>

template<
    typename LHS_t,
    typename RHS_t,
    unsigned int Opcode,
    unsigned int WrapFlags = 0,
    bool Commutable = false>
struct OverflowingBinaryOp_match;

Member Functions

NameDescription
OverflowingBinaryOp_match [constructor]Construct a matcher for both operands.
match Match V if opcode, wrap flags, and operands succeed.

Data Members

NameDescription
L Sub-pattern for the left-hand operand.
R Sub-pattern for the right-hand operand.

Non-Member Functions

NameDescription
m_NSWAddMatches an add nsw of L and R.
m_NSWAddLikeMatch either "add nsw" or "or disjoint".
m_NSWMulMatches a mul nsw of L and R.
m_NSWNegMatches a 'Neg' as 'sub nsw 0, V'.
m_NSWShlMatches a shl nsw of L and R.
m_NSWSubMatches a sub nsw of L and R.
m_NUWAddMatches an add nuw of L and R.
m_NUWAddLikeMatch either "add nuw" or "or disjoint".
m_NUWMulMatches a mul nuw of L and R.
m_NUWShlMatches a shl nuw of L and R.
m_NUWSubMatches a sub nuw of L and R.
m_c_NSWAddMatches an add nsw of L and R in either order.
m_c_NUWAddMatches an add nuw of L and R in either order.