Matches an overflowing binary op with required no-wrap flags.
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;
| Name | Description |
|---|---|
OverflowingBinaryOp_match [constructor] | Construct a matcher for both operands. |
match | Match V if opcode, wrap flags, and operands succeed. |
| Name | Description |
|---|---|
L | Sub-pattern for the left-hand operand. |
R | Sub-pattern for the right-hand operand. |
| Name | Description |
|---|---|
m_NSWAdd | Matches an add nsw of L and R. |
m_NSWAddLike | Match either "add nsw" or "or disjoint". |
m_NSWMul | Matches a mul nsw of L and R. |
m_NSWNeg | Matches a 'Neg' as 'sub nsw 0, V'. |
m_NSWShl | Matches a shl nsw of L and R. |
m_NSWSub | Matches a sub nsw of L and R. |
m_NUWAdd | Matches an add nuw of L and R. |
m_NUWAddLike | Match either "add nuw" or "or disjoint". |
m_NUWMul | Matches a mul nuw of L and R. |
m_NUWShl | Matches a shl nuw of L and R. |
m_NUWSub | Matches a sub nuw of L and R. |
m_c_NSWAdd | Matches an add nsw of L and R in either order. |
m_c_NUWAdd | Matches an add nuw of L and R in either order. |