LLVM 24.0.0git
llvm::SDPatternMatch Namespace Reference

Classes

struct  AllOnes_match
struct  And
struct  And< Pred, Preds... >
struct  AnyZeroFP_match
struct  BinaryOpc_match
struct  Bool_match
struct  CondCode_match
struct  Constant64_match
struct  ConstantInt_match
struct  DeferredValue_match
struct  EffectiveOperands
 Provide number of operands that are not chain or glue, as well as the first index of such operand. More...
struct  FunnelShiftLike_match
struct  m_Mask
struct  m_SpecificMask
struct  MaxMin_match
struct  Not
struct  NUses_match
struct  Ones_match
struct  Opcode_match
struct  Operands_match
struct  Operands_match< OpIdx, OpndPred, OpndPreds... >
struct  Or
struct  Or< Pred, Preds... >
struct  ReassociatableOpc_match
struct  Result_match
struct  SDShuffle_match
 Matching while capturing mask. More...
struct  smax_pred_ty
struct  smin_pred_ty
struct  SpecificFP_match
struct  SpecificInt_match
struct  SpecificNeg_match
struct  TernaryOpc_match
struct  TLI_pred_match
struct  umax_pred_ty
struct  umin_pred_ty
struct  UnaryOpc_match
struct  Value_bind
struct  Value_match
struct  ValueType_bind
struct  ValueType_match
struct  Zero_match

Functions

template<typename Pattern>
bool sd_match (SDValue N, Pattern &&P)
template<typename Pattern>
bool sd_match (SDNode *N, Pattern &&P)
Value_match m_Value ()
 Match any valid SDValue.
Value_match m_Specific (SDValue N)
template<unsigned ResNo, typename Pattern>
Result_match< ResNo, Pattern > m_Result (const Pattern &P)
 Match only if the SDValue is a certain result at ResNo.
DeferredValue_match m_Deferred (SDValue &V)
 Similar to m_Specific, but the specific value to match is determined by another sub-pattern in the same sd_match() expression.
template<typename Pred>
 Not (const Pred &P) -> Not< Pred >
template<typename Pred>
Not< Pred > m_Unless (const Pred &P)
 Match if the inner pattern does NOT match.
template<typename... Preds>
And< Preds... > m_AllOf (const Preds &...preds)
template<typename... Preds>
Or< Preds... > m_AnyOf (const Preds &...preds)
template<typename... Preds>
auto m_NoneOf (const Preds &...preds)
Opcode_match m_SpecificOpc (unsigned Opcode)
auto m_Undef ()
Opcode_match m_Poison ()
template<typename Pattern>
NUses_match< 1, Pattern > m_OneUse (const Pattern &P)
template<unsigned N, typename Pattern>
NUses_match< N, Pattern > m_NUses (const Pattern &P)
NUses_match< 1, Value_match > m_OneUse ()
template<unsigned N>
NUses_match< N, Value_match > m_NUses ()
auto m_Value (SDValue &N)
template<typename PredPattern>
auto m_Value (SDValue &N, const PredPattern &P)
 Conditionally bind an SDValue based on the predicate.
template<typename PredFuncT, typename Pattern>
 TLI_pred_match (const PredFuncT &Pred, const Pattern &P) -> TLI_pred_match< Pattern, PredFuncT >
template<typename Pattern>
auto m_LegalOp (const SelectionDAG &DAG, const Pattern &P)
 Match legal SDNodes based on the information provided by TargetLowering.
template<typename Pattern>
 ValueType_bind (const Pattern &P) -> ValueType_bind< Pattern >
auto m_VT (EVT &VT)
 Retreive the ValueType of the current SDValue.
template<typename Pattern>
auto m_VT (EVT &VT, const Pattern &P)
template<typename PredFuncT, typename Pattern>
 ValueType_match (const PredFuncT &Pred, const Pattern &P) -> ValueType_match< Pattern, PredFuncT >
template<typename Pattern>
auto m_SpecificVT (EVT RefVT, const Pattern &P)
 Match a specific ValueType.
auto m_SpecificVT (EVT RefVT)
auto m_Glue ()
auto m_OtherVT ()
template<typename Pattern>
auto m_SpecificScalarVT (EVT RefVT, const Pattern &P)
 Match a scalar ValueType.
auto m_SpecificScalarVT (EVT RefVT)
template<typename Pattern>
auto m_SpecificVectorElementVT (EVT RefVT, const Pattern &P)
 Match a vector ValueType.
auto m_SpecificVectorElementVT (EVT RefVT)
template<typename Pattern>
auto m_IntegerVT (const Pattern &P)
 Match any integer ValueTypes.
auto m_IntegerVT ()
template<typename Pattern>
auto m_FloatingPointVT (const Pattern &P)
 Match any floating point ValueTypes.
auto m_FloatingPointVT ()
template<typename Pattern>
auto m_VectorVT (const Pattern &P)
 Match any vector ValueTypes.
auto m_VectorVT ()
template<typename Pattern>
auto m_FixedVectorVT (const Pattern &P)
 Match fixed-length vector ValueTypes.
auto m_FixedVectorVT ()
template<typename Pattern>
auto m_ScalableVectorVT (const Pattern &P)
 Match scalable vector ValueTypes.
auto m_ScalableVectorVT ()
template<typename Pattern>
auto m_LegalType (const SelectionDAG &DAG, const Pattern &P)
 Match legal ValueTypes based on the information provided by TargetLowering.
template<typename... OpndPreds>
auto m_Node (unsigned Opcode, const OpndPreds &...preds)
CondCode_match m_CondCode ()
 Match any conditional code SDNode.
CondCode_match m_CondCode (ISD::CondCode &CC)
 Match any conditional code SDNode and return its ISD::CondCode value.
CondCode_match m_SpecificCondCode (ISD::CondCode CC)
 Match a conditional code SDNode with a specific ISD::CondCode.
template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match > m_SetCC (const T0_P &LHS, const T1_P &RHS)
 Match a SETCC with any condition code.
template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match > m_SetCC (ISD::CondCode &CC, const T0_P &LHS, const T1_P &RHS)
 Match a SETCC with any condition code and bind the condition code to CC.
template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match > m_SpecificSetCC (ISD::CondCode CC, const T0_P &LHS, const T1_P &RHS)
 Match a SETCC with a specific condition code.
template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match, true, false > m_c_SetCC (const T0_P &LHS, const T1_P &RHS)
 Match a SETCC with any condition code, allowing the operands to be commuted.
template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match, true, false > m_c_SetCC (ISD::CondCode &CC, const T0_P &LHS, const T1_P &RHS)
 Match a SETCC with any condition code, allowing the operands to be commuted, and bind the condition code to CC.
template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match, true, false > m_c_SpecificSetCC (ISD::CondCode CC, const T0_P &LHS, const T1_P &RHS)
 Match a SETCC with a specific condition code, allowing the operands to be commuted.
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_Select (const T0_P &Cond, const T1_P &T, const T2_P &F)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_VSelect (const T0_P &Cond, const T1_P &T, const T2_P &F)
template<typename T0_P, typename T1_P, typename T2_P>
auto m_SelectLike (const T0_P &Cond, const T1_P &T, const T2_P &F)
template<typename T0_P, typename T1_P, typename T2_P>
Result_match< 0, TernaryOpc_match< T0_P, T1_P, T2_P > > m_Load (const T0_P &Ch, const T1_P &Ptr, const T2_P &Offset)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_InsertElt (const T0_P &Vec, const T1_P &Val, const T2_P &Idx)
template<typename LHS, typename RHS, typename IDX>
TernaryOpc_match< LHS, RHS, IDX > m_InsertSubvector (const LHS &Base, const RHS &Sub, const IDX &Idx)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_SpliceRight (const T0_P &V1, const T1_P &V2, const T2_P &Offset)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_TernaryOp (unsigned Opc, const T0_P &Op0, const T1_P &Op1, const T2_P &Op2)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P, true > m_c_TernaryOp (unsigned Opc, const T0_P &Op0, const T1_P &Op1, const T2_P &Op2)
template<typename LTy, typename RTy, typename TTy, typename FTy>
auto m_SelectCC (const LTy &L, const RTy &R, const TTy &T, const FTy &F)
 Match a SELECT_CC with any condition code.
template<typename LTy, typename RTy, typename TTy, typename FTy>
auto m_SelectCC (ISD::CondCode &CC, const LTy &L, const RTy &R, const TTy &T, const FTy &F)
 Match a SELECT_CC with any condition code and bind the condition code to CC.
template<typename LTy, typename RTy, typename TTy, typename FTy>
auto m_SpecificSelectCC (ISD::CondCode CC, const LTy &L, const RTy &R, const TTy &T, const FTy &F)
 Match a SELECT_CC with a specific condition code.
template<typename LTy, typename RTy, typename TTy, typename FTy>
auto m_SelectCCLike (const LTy &L, const RTy &R, const TTy &T, const FTy &F)
 Match a SELECT of a SETCC or a SELECT_CC with any condition code.
template<typename LTy, typename RTy, typename TTy, typename FTy>
auto m_SelectCCLike (ISD::CondCode &CC, const LTy &L, const RTy &R, const TTy &T, const FTy &F)
 Match a SELECT of a SETCC or a SELECT_CC with any condition code and bind the condition code to CC.
template<typename LTy, typename RTy, typename TTy, typename FTy>
auto m_SpecificSelectCCLike (ISD::CondCode CC, const LTy &L, const RTy &R, const TTy &T, const FTy &F)
 Match a SELECT of a SETCC or a SELECT_CC with a specific condition code.
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_BinOp (unsigned Opc, const LHS &L, const RHS &R, SDNodeFlags Flgs=SDNodeFlags())
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_c_BinOp (unsigned Opc, const LHS &L, const RHS &R, SDNodeFlags Flgs=SDNodeFlags())
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, false, true > m_ChainedBinOp (unsigned Opc, const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true, true > m_c_ChainedBinOp (unsigned Opc, const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_Add (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_NUWAdd (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_NSWAdd (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_Sub (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_Mul (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_And (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_Or (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_DisjointOr (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_AddLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_NSWAddLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_NUWAddLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_Xor (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_BitwiseLogic (const LHS &L, const RHS &R)
template<unsigned Opc, typename Pred, typename LHS, typename RHS>
auto m_MaxMinLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_SMin (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_SMinLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_SMax (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_SMaxLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_UMin (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_UMinLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_UMax (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_UMaxLike (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_UDiv (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_SDiv (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_URem (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_SRem (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_Shl (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_Sra (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_Srl (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
auto m_ExactSr (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_Rotl (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_Rotr (const LHS &L, const RHS &R)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_FShL (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2)
template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > m_FShR (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2)
template<typename T0_P, typename T1_P, typename T2_P>
FunnelShiftLike_match< T0_P, T1_P, T2_P, true > m_FShLLike (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2)
template<typename T0_P, typename T1_P, typename T2_P>
FunnelShiftLike_match< T0_P, T1_P, T2_P, false > m_FShRLike (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_Clmul (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_FAdd (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_FSub (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > m_FMul (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_FDiv (const LHS &L, const RHS &R)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_FRem (const LHS &L, const RHS &R)
template<typename V1_t, typename V2_t>
BinaryOpc_match< V1_t, V2_t > m_Shuffle (const V1_t &v1, const V2_t &v2)
template<typename V1_t, typename V2_t, typename Mask_t>
SDShuffle_match< V1_t, V2_t, Mask_t > m_Shuffle (const V1_t &v1, const V2_t &v2, const Mask_t &mask)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_ExtractElt (const LHS &Vec, const RHS &Idx)
template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > m_ExtractSubvector (const LHS &Vec, const RHS &Idx)
template<typename Opnd>
UnaryOpc_match< Opnd > m_UnaryOp (unsigned Opc, const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd, true > m_ChainedUnaryOp (unsigned Opc, const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_BitCast (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_BSwap (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_BitReverse (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_ZExt (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_NNegZExt (const Opnd &Op)
template<typename Opnd>
auto m_SExt (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_AnyExt (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_Trunc (const Opnd &Op)
template<typename Opnd>
auto m_Abs (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_FAbs (const Opnd &Op)
template<typename Opnd>
auto m_ZExtOrSelf (const Opnd &Op)
 Match a zext or identity Allows to peek through optional extensions.
template<typename Opnd>
auto m_SExtOrSelf (const Opnd &Op)
 Match a sext or identity Allows to peek through optional extensions.
template<typename Opnd>
auto m_SExtLike (const Opnd &Op)
template<typename Opnd>
Or< UnaryOpc_match< Opnd >, Opnd > m_AExtOrSelf (const Opnd &Op)
 Match a aext or identity Allows to peek through optional extensions.
template<typename Opnd>
Or< UnaryOpc_match< Opnd >, Opnd > m_TruncOrSelf (const Opnd &Op)
 Match a trunc or identity Allows to peek through optional truncations.
template<typename Opnd>
UnaryOpc_match< Opnd > m_VScale (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_FPToUI (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_FPToSI (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_Ctpop (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_Ctlz (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_Cttz (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_FNeg (const Opnd &Op)
template<typename Opnd>
UnaryOpc_match< Opnd > m_VectorReverse (const Opnd &Op)
ConstantInt_match m_ConstInt ()
 Match any integer constants or splat of an integer constant.
ConstantInt_match m_ConstInt (APInt &V)
 Match any integer constants or splat of an integer constant; return the specific constant or constant splat value.
Constant64_match< uint64_t > m_ConstInt (uint64_t &V)
 Match any integer constants or splat of an integer constant that can fit in 64 bits; return the specific constant or constant splat value, zero-extended to 64 bits.
Constant64_match< int64_t > m_ConstInt (int64_t &V)
 Match any integer constants or splat of an integer constant that can fit in 64 bits; return the specific constant or constant splat value, sign-extended to 64 bits.
SpecificInt_match m_SpecificInt (APInt V)
 Match a specific integer constant or constant splat value.
SpecificInt_match m_SpecificInt (uint64_t V)
SpecificFP_match m_SpecificFP (APFloat V)
 Match a specific float constant.
SpecificFP_match m_SpecificFP (double V)
AnyZeroFP_match m_AnyZeroFP ()
 Match a floating-point +0.0 or -0.0 constant or splat.
Ones_match m_One (bool AllowUndefs=false)
Zero_match m_Zero (bool AllowUndefs=false)
AllOnes_match m_AllOnes (bool AllowUndefs=false)
auto m_True (const SelectionDAG &DAG)
 Match true boolean value based on the information provided by TargetLowering.
auto m_False (const SelectionDAG &DAG)
 Match false boolean value based on the information provided by TargetLowering.
template<typename ValTy>
BinaryOpc_match< Zero_match, ValTy, false > m_Neg (const ValTy &V)
 Match a negate as a sub(0, v)
template<typename ValTy>
BinaryOpc_match< ValTy, AllOnes_match, true > m_Not (const ValTy &V)
 Match a Not as a xor(v, -1) or xor(-1, v)
template<unsigned IntrinsicId, typename... OpndPreds>
auto m_IntrinsicWOChain (const OpndPreds &...Opnds)
SpecificNeg_match m_SpecificNeg (SDValue V)
 Match a negation of a specific value V, either as sub(0, V) or as constant(s) that are the negation of V's constant(s).
template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > m_ReassociatableAdd (const PatternTs &...Patterns)
template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > m_ReassociatableOr (const PatternTs &...Patterns)
template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > m_ReassociatableAnd (const PatternTs &...Patterns)
template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > m_ReassociatableMul (const PatternTs &...Patterns)
template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > m_ReassociatableNSWAdd (const PatternTs &...Patterns)
template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > m_ReassociatableNUWAdd (const PatternTs &...Patterns)

Function Documentation

◆ m_Abs()

template<typename Opnd>
auto llvm::SDPatternMatch::m_Abs ( const Opnd & Op)
inline

Definition at line 1146 of file SDPatternMatch.h.

References llvm::ISD::ABS, llvm::ISD::ABS_MIN_POISON, and m_AnyOf().

Referenced by combineBasicSADPattern().

◆ m_Add()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_Add ( const LHS & L,
const RHS & R )
inline

Definition at line 802 of file SDPatternMatch.h.

References llvm::ISD::ADD, LHS, and RHS.

Referenced by m_AddLike().

◆ m_AddLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_AddLike ( const LHS & L,
const RHS & R )
inline

Definition at line 845 of file SDPatternMatch.h.

References LHS, m_Add(), m_AnyOf(), m_DisjointOr(), and RHS.

◆ m_AExtOrSelf()

template<typename Opnd>
Or< UnaryOpc_match< Opnd >, Opnd > llvm::SDPatternMatch::m_AExtOrSelf ( const Opnd & Op)
inline

Match a aext or identity Allows to peek through optional extensions.

Definition at line 1174 of file SDPatternMatch.h.

References m_AnyExt().

◆ m_AllOf()

template<typename... Preds>
And< Preds... > llvm::SDPatternMatch::m_AllOf ( const Preds &... preds)

Definition at line 143 of file SDPatternMatch.h.

Referenced by m_Node(), and m_Value().

◆ m_AllOnes()

AllOnes_match llvm::SDPatternMatch::m_AllOnes ( bool AllowUndefs = false)
inline

Definition at line 1386 of file SDPatternMatch.h.

◆ m_And()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_And ( const LHS & L,
const RHS & R )
inline

Definition at line 829 of file SDPatternMatch.h.

References llvm::ISD::AND, LHS, and RHS.

Referenced by m_BitwiseLogic().

◆ m_AnyExt()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_AnyExt ( const Opnd & Op)
inline

Definition at line 1138 of file SDPatternMatch.h.

References llvm::ISD::ANY_EXTEND.

Referenced by combineSCALAR_TO_VECTOR(), m_AExtOrSelf(), and visitORCommutative().

◆ m_AnyOf()

◆ m_AnyZeroFP()

AnyZeroFP_match llvm::SDPatternMatch::m_AnyZeroFP ( )
inline

Match a floating-point +0.0 or -0.0 constant or splat.

Definition at line 1354 of file SDPatternMatch.h.

◆ m_BinOp()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_BinOp ( unsigned Opc,
const LHS & L,
const RHS & R,
SDNodeFlags Flgs = SDNodeFlags() )
inline

Definition at line 777 of file SDPatternMatch.h.

References LHS, Opc, and RHS.

◆ m_BitCast()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_BitCast ( const Opnd & Op)
inline

Definition at line 1111 of file SDPatternMatch.h.

References llvm::ISD::BITCAST.

◆ m_BitReverse()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_BitReverse ( const Opnd & Op)
inline

Definition at line 1121 of file SDPatternMatch.h.

References llvm::ISD::BITREVERSE.

◆ m_BitwiseLogic()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_BitwiseLogic ( const LHS & L,
const RHS & R )
inline

Definition at line 865 of file SDPatternMatch.h.

References LHS, m_And(), m_AnyOf(), m_Or(), m_Xor(), and RHS.

◆ m_BSwap()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_BSwap ( const Opnd & Op)
inline

Definition at line 1116 of file SDPatternMatch.h.

References llvm::ISD::BSWAP.

◆ m_c_BinOp()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_c_BinOp ( unsigned Opc,
const LHS & L,
const RHS & R,
SDNodeFlags Flgs = SDNodeFlags() )
inline

Definition at line 784 of file SDPatternMatch.h.

References LHS, Opc, and RHS.

◆ m_c_ChainedBinOp()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true, true > llvm::SDPatternMatch::m_c_ChainedBinOp ( unsigned Opc,
const LHS & L,
const RHS & R )
inline

Definition at line 796 of file SDPatternMatch.h.

References LHS, Opc, and RHS.

◆ m_c_SetCC() [1/2]

template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match, true, false > llvm::SDPatternMatch::m_c_SetCC ( const T0_P & LHS,
const T1_P & RHS )
inline

Match a SETCC with any condition code, allowing the operands to be commuted.

Definition at line 510 of file SDPatternMatch.h.

References LHS, m_CondCode(), RHS, and llvm::ISD::SETCC.

Referenced by performAnyAllCombine(), and performBitcastCombine().

◆ m_c_SetCC() [2/2]

template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match, true, false > llvm::SDPatternMatch::m_c_SetCC ( ISD::CondCode & CC,
const T0_P & LHS,
const T1_P & RHS )
inline

Match a SETCC with any condition code, allowing the operands to be commuted, and bind the condition code to CC.

Definition at line 519 of file SDPatternMatch.h.

References LHS, m_CondCode(), RHS, and llvm::ISD::SETCC.

◆ m_c_SpecificSetCC()

template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match, true, false > llvm::SDPatternMatch::m_c_SpecificSetCC ( ISD::CondCode CC,
const T0_P & LHS,
const T1_P & RHS )
inline

Match a SETCC with a specific condition code, allowing the operands to be commuted.

Definition at line 528 of file SDPatternMatch.h.

References LHS, m_SpecificCondCode(), RHS, and llvm::ISD::SETCC.

Referenced by combineOrOfSetCCToUSUBOCarry(), isTruncateOf(), performAnyAllCombine(), and performBitmaskCombine().

◆ m_c_TernaryOp()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P, true > llvm::SDPatternMatch::m_c_TernaryOp ( unsigned Opc,
const T0_P & Op0,
const T1_P & Op1,
const T2_P & Op2 )
inline

Definition at line 585 of file SDPatternMatch.h.

References Opc.

◆ m_ChainedBinOp()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, false, true > llvm::SDPatternMatch::m_ChainedBinOp ( unsigned Opc,
const LHS & L,
const RHS & R )
inline

Definition at line 791 of file SDPatternMatch.h.

References LHS, Opc, and RHS.

◆ m_ChainedUnaryOp()

template<typename Opnd>
UnaryOpc_match< Opnd, true > llvm::SDPatternMatch::m_ChainedUnaryOp ( unsigned Opc,
const Opnd & Op )
inline

Definition at line 1106 of file SDPatternMatch.h.

References Opc.

◆ m_Clmul()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_Clmul ( const LHS & L,
const RHS & R )
inline

Definition at line 1027 of file SDPatternMatch.h.

References llvm::ISD::CLMUL, LHS, and RHS.

◆ m_CondCode() [1/2]

CondCode_match llvm::SDPatternMatch::m_CondCode ( )
inline

Match any conditional code SDNode.

Definition at line 472 of file SDPatternMatch.h.

Referenced by m_c_SetCC(), m_c_SetCC(), m_SelectCC(), m_SelectCC(), m_SetCC(), and m_SetCC().

◆ m_CondCode() [2/2]

CondCode_match llvm::SDPatternMatch::m_CondCode ( ISD::CondCode & CC)
inline

Match any conditional code SDNode and return its ISD::CondCode value.

Definition at line 474 of file SDPatternMatch.h.

◆ m_ConstInt() [1/4]

◆ m_ConstInt() [2/4]

ConstantInt_match llvm::SDPatternMatch::m_ConstInt ( APInt & V)
inline

Match any integer constants or splat of an integer constant; return the specific constant or constant splat value.

Definition at line 1275 of file SDPatternMatch.h.

◆ m_ConstInt() [3/4]

Constant64_match< int64_t > llvm::SDPatternMatch::m_ConstInt ( int64_t & V)
inline

Match any integer constants or splat of an integer constant that can fit in 64 bits; return the specific constant or constant splat value, sign-extended to 64 bits.

Definition at line 1285 of file SDPatternMatch.h.

◆ m_ConstInt() [4/4]

Constant64_match< uint64_t > llvm::SDPatternMatch::m_ConstInt ( uint64_t & V)
inline

Match any integer constants or splat of an integer constant that can fit in 64 bits; return the specific constant or constant splat value, zero-extended to 64 bits.

Definition at line 1279 of file SDPatternMatch.h.

References uint64_t.

◆ m_Ctlz()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_Ctlz ( const Opnd & Op)
inline

Definition at line 1201 of file SDPatternMatch.h.

References llvm::ISD::CTLZ.

◆ m_Ctpop()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_Ctpop ( const Opnd & Op)
inline

Definition at line 1197 of file SDPatternMatch.h.

References llvm::ISD::CTPOP.

◆ m_Cttz()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_Cttz ( const Opnd & Op)
inline

Definition at line 1205 of file SDPatternMatch.h.

References llvm::ISD::CTTZ.

◆ m_Deferred()

DeferredValue_match llvm::SDPatternMatch::m_Deferred ( SDValue & V)
inline

Similar to m_Specific, but the specific value to match is determined by another sub-pattern in the same sd_match() expression.

For instance, We cannot match (add V, V) with m_Add(m_Value(X), m_Specific(X)) since X is not initialized at the time it got copied into m_Specific. Instead, we should use m_Add(m_Value(X), m_Deferred(X)).

Definition at line 91 of file SDPatternMatch.h.

◆ m_DisjointOr()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_DisjointOr ( const LHS & L,
const RHS & R )
inline

Definition at line 839 of file SDPatternMatch.h.

References llvm::SDNodeFlags::Disjoint, LHS, llvm::ISD::OR, and RHS.

Referenced by m_AddLike(), m_NSWAddLike(), and m_NUWAddLike().

◆ m_ExactSr()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_ExactSr ( const LHS & L,
const RHS & R )
inline

◆ m_ExtractElt()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_ExtractElt ( const LHS & Vec,
const RHS & Idx )
inline

Definition at line 1068 of file SDPatternMatch.h.

References llvm::ISD::EXTRACT_VECTOR_ELT, LHS, and RHS.

◆ m_ExtractSubvector()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_ExtractSubvector ( const LHS & Vec,
const RHS & Idx )
inline

Definition at line 1073 of file SDPatternMatch.h.

References llvm::ISD::EXTRACT_SUBVECTOR, LHS, and RHS.

◆ m_FAbs()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_FAbs ( const Opnd & Op)
inline

Definition at line 1151 of file SDPatternMatch.h.

References llvm::ISD::FABS.

◆ m_FAdd()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_FAdd ( const LHS & L,
const RHS & R )
inline

Definition at line 1032 of file SDPatternMatch.h.

References llvm::ISD::FADD, LHS, and RHS.

◆ m_False()

auto llvm::SDPatternMatch::m_False ( const SelectionDAG & DAG)
inline

Match false boolean value based on the information provided by TargetLowering.

Definition at line 1407 of file SDPatternMatch.h.

◆ m_FDiv()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_FDiv ( const LHS & L,
const RHS & R )
inline

Definition at line 1047 of file SDPatternMatch.h.

References llvm::ISD::FDIV, LHS, and RHS.

◆ m_FixedVectorVT() [1/2]

auto llvm::SDPatternMatch::m_FixedVectorVT ( )
inline

Definition at line 345 of file SDPatternMatch.h.

References m_Value().

◆ m_FixedVectorVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_FixedVectorVT ( const Pattern & P)
inline

Match fixed-length vector ValueTypes.

Definition at line 342 of file SDPatternMatch.h.

References P.

◆ m_FloatingPointVT() [1/2]

auto llvm::SDPatternMatch::m_FloatingPointVT ( )
inline

Definition at line 328 of file SDPatternMatch.h.

References m_Value().

◆ m_FloatingPointVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_FloatingPointVT ( const Pattern & P)
inline

Match any floating point ValueTypes.

Definition at line 325 of file SDPatternMatch.h.

References P.

◆ m_FMul()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_FMul ( const LHS & L,
const RHS & R )
inline

Definition at line 1042 of file SDPatternMatch.h.

References llvm::ISD::FMUL, LHS, and RHS.

◆ m_FNeg()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_FNeg ( const Opnd & Op)
inline

Definition at line 1209 of file SDPatternMatch.h.

References llvm::ISD::FNEG.

◆ m_FPToSI()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_FPToSI ( const Opnd & Op)
inline

Definition at line 1193 of file SDPatternMatch.h.

References llvm::ISD::FP_TO_SINT.

◆ m_FPToUI()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_FPToUI ( const Opnd & Op)
inline

Definition at line 1189 of file SDPatternMatch.h.

References llvm::ISD::FP_TO_UINT.

◆ m_FRem()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_FRem ( const LHS & L,
const RHS & R )
inline

Definition at line 1052 of file SDPatternMatch.h.

References llvm::ISD::FREM, LHS, and RHS.

◆ m_FShL()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_FShL ( const T0_P & Op0,
const T1_P & Op1,
const T2_P & Op2 )
inline

◆ m_FShLLike()

template<typename T0_P, typename T1_P, typename T2_P>
FunnelShiftLike_match< T0_P, T1_P, T2_P, true > llvm::SDPatternMatch::m_FShLLike ( const T0_P & Op0,
const T1_P & Op1,
const T2_P & Op2 )
inline

Definition at line 1016 of file SDPatternMatch.h.

◆ m_FShR()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_FShR ( const T0_P & Op0,
const T1_P & Op1,
const T2_P & Op2 )
inline

◆ m_FShRLike()

template<typename T0_P, typename T1_P, typename T2_P>
FunnelShiftLike_match< T0_P, T1_P, T2_P, false > llvm::SDPatternMatch::m_FShRLike ( const T0_P & Op0,
const T1_P & Op1,
const T2_P & Op2 )
inline

Definition at line 1022 of file SDPatternMatch.h.

◆ m_FSub()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_FSub ( const LHS & L,
const RHS & R )
inline

Definition at line 1037 of file SDPatternMatch.h.

References llvm::ISD::FSUB, LHS, and RHS.

◆ m_Glue()

auto llvm::SDPatternMatch::m_Glue ( )
inline

Definition at line 285 of file SDPatternMatch.h.

References m_SpecificVT().

◆ m_InsertElt()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_InsertElt ( const T0_P & Vec,
const T1_P & Val,
const T2_P & Idx )
inline

Definition at line 559 of file SDPatternMatch.h.

References llvm::ISD::INSERT_VECTOR_ELT.

◆ m_InsertSubvector()

template<typename LHS, typename RHS, typename IDX>
TernaryOpc_match< LHS, RHS, IDX > llvm::SDPatternMatch::m_InsertSubvector ( const LHS & Base,
const RHS & Sub,
const IDX & Idx )
inline

◆ m_IntegerVT() [1/2]

auto llvm::SDPatternMatch::m_IntegerVT ( )
inline

Definition at line 320 of file SDPatternMatch.h.

References m_Value().

◆ m_IntegerVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_IntegerVT ( const Pattern & P)
inline

Match any integer ValueTypes.

Definition at line 317 of file SDPatternMatch.h.

References P.

◆ m_IntrinsicWOChain()

template<unsigned IntrinsicId, typename... OpndPreds>
auto llvm::SDPatternMatch::m_IntrinsicWOChain ( const OpndPreds &... Opnds)
inline

◆ m_LegalOp()

template<typename Pattern>
auto llvm::SDPatternMatch::m_LegalOp ( const SelectionDAG & DAG,
const Pattern & P )
inline

Match legal SDNodes based on the information provided by TargetLowering.

Definition at line 229 of file SDPatternMatch.h.

References llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLoweringBase::isOperationLegal(), N, and P.

◆ m_LegalType()

template<typename Pattern>
auto llvm::SDPatternMatch::m_LegalType ( const SelectionDAG & DAG,
const Pattern & P )
inline

Match legal ValueTypes based on the information provided by TargetLowering.

Definition at line 361 of file SDPatternMatch.h.

References llvm::SelectionDAG::getTargetLoweringInfo(), llvm::TargetLoweringBase::isTypeLegal(), N, and P.

◆ m_Load()

template<typename T0_P, typename T1_P, typename T2_P>
Result_match< 0, TernaryOpc_match< T0_P, T1_P, T2_P > > llvm::SDPatternMatch::m_Load ( const T0_P & Ch,
const T1_P & Ptr,
const T2_P & Offset )
inline

Definition at line 552 of file SDPatternMatch.h.

References llvm::ISD::LOAD, m_Result(), and llvm::Offset.

◆ m_MaxMinLike()

template<unsigned Opc, typename Pred, typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_MaxMinLike ( const LHS & L,
const RHS & R )
inline

Definition at line 870 of file SDPatternMatch.h.

References LHS, m_AnyOf(), Opc, and RHS.

Referenced by m_SMaxLike(), m_SMinLike(), m_UMaxLike(), and m_UMinLike().

◆ m_Mul()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_Mul ( const LHS & L,
const RHS & R )
inline

Definition at line 824 of file SDPatternMatch.h.

References LHS, llvm::ISD::MUL, and RHS.

◆ m_Neg()

template<typename ValTy>
BinaryOpc_match< Zero_match, ValTy, false > llvm::SDPatternMatch::m_Neg ( const ValTy & V)
inline

Match a negate as a sub(0, v)

Definition at line 1411 of file SDPatternMatch.h.

References m_Sub(), and llvm::PatternMatch::m_Zero().

Referenced by llvm::SDPatternMatch::SpecificNeg_match::match().

◆ m_NNegZExt()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_NNegZExt ( const Opnd & Op)
inline

Definition at line 1130 of file SDPatternMatch.h.

References llvm::SDNodeFlags::NonNeg, and llvm::ISD::ZERO_EXTEND.

Referenced by m_SExtLike().

◆ m_Node()

template<typename... OpndPreds>
auto llvm::SDPatternMatch::m_Node ( unsigned Opcode,
const OpndPreds &... preds )

◆ m_NoneOf()

template<typename... Preds>
auto llvm::SDPatternMatch::m_NoneOf ( const Preds &... preds)

Definition at line 151 of file SDPatternMatch.h.

References m_AnyOf(), and m_Unless().

◆ m_Not()

template<typename ValTy>
BinaryOpc_match< ValTy, AllOnes_match, true > llvm::SDPatternMatch::m_Not ( const ValTy & V)
inline

Match a Not as a xor(v, -1) or xor(-1, v)

Definition at line 1417 of file SDPatternMatch.h.

References llvm::MIPatternMatch::m_AllOnes(), and m_Xor().

◆ m_NSWAdd()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_NSWAdd ( const LHS & L,
const RHS & R )
inline

Definition at line 813 of file SDPatternMatch.h.

References llvm::ISD::ADD, LHS, llvm::SDNodeFlags::NoSignedWrap, and RHS.

Referenced by m_NSWAddLike().

◆ m_NSWAddLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_NSWAddLike ( const LHS & L,
const RHS & R )
inline

Definition at line 850 of file SDPatternMatch.h.

References LHS, m_AnyOf(), m_DisjointOr(), m_NSWAdd(), and RHS.

◆ m_NUses() [1/2]

template<unsigned N>
NUses_match< N, Value_match > llvm::SDPatternMatch::m_NUses ( )
inline

Definition at line 190 of file SDPatternMatch.h.

References m_Value().

◆ m_NUses() [2/2]

template<unsigned N, typename Pattern>
NUses_match< N, Pattern > llvm::SDPatternMatch::m_NUses ( const Pattern & P)
inline

Definition at line 183 of file SDPatternMatch.h.

References P.

Referenced by combineConcatVectorOfShuffles().

◆ m_NUWAdd()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_NUWAdd ( const LHS & L,
const RHS & R )
inline

Definition at line 807 of file SDPatternMatch.h.

References llvm::ISD::ADD, LHS, llvm::SDNodeFlags::NoUnsignedWrap, and RHS.

Referenced by m_NUWAddLike().

◆ m_NUWAddLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_NUWAddLike ( const LHS & L,
const RHS & R )
inline

Definition at line 855 of file SDPatternMatch.h.

References LHS, m_AnyOf(), m_DisjointOr(), m_NUWAdd(), and RHS.

◆ m_One()

Ones_match llvm::SDPatternMatch::m_One ( bool AllowUndefs = false)
inline

Definition at line 1380 of file SDPatternMatch.h.

◆ m_OneUse() [1/2]

◆ m_OneUse() [2/2]

template<typename Pattern>
NUses_match< 1, Pattern > llvm::SDPatternMatch::m_OneUse ( const Pattern & P)
inline

Definition at line 179 of file SDPatternMatch.h.

References P.

◆ m_Or()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_Or ( const LHS & L,
const RHS & R )
inline

◆ m_OtherVT()

auto llvm::SDPatternMatch::m_OtherVT ( )
inline

Definition at line 286 of file SDPatternMatch.h.

References m_SpecificVT().

◆ m_Poison()

Opcode_match llvm::SDPatternMatch::m_Poison ( )
inline

Definition at line 163 of file SDPatternMatch.h.

References llvm::ISD::POISON.

◆ m_ReassociatableAdd()

template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > llvm::SDPatternMatch::m_ReassociatableAdd ( const PatternTs &... Patterns)
inline

Definition at line 1517 of file SDPatternMatch.h.

References llvm::ISD::ADD.

◆ m_ReassociatableAnd()

template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > llvm::SDPatternMatch::m_ReassociatableAnd ( const PatternTs &... Patterns)
inline

Definition at line 1529 of file SDPatternMatch.h.

References llvm::ISD::AND.

◆ m_ReassociatableMul()

template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > llvm::SDPatternMatch::m_ReassociatableMul ( const PatternTs &... Patterns)
inline

Definition at line 1535 of file SDPatternMatch.h.

References llvm::ISD::MUL.

◆ m_ReassociatableNSWAdd()

template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > llvm::SDPatternMatch::m_ReassociatableNSWAdd ( const PatternTs &... Patterns)
inline

Definition at line 1541 of file SDPatternMatch.h.

References llvm::ISD::ADD, and llvm::SDNodeFlags::NoSignedWrap.

◆ m_ReassociatableNUWAdd()

template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > llvm::SDPatternMatch::m_ReassociatableNUWAdd ( const PatternTs &... Patterns)
inline

Definition at line 1548 of file SDPatternMatch.h.

References llvm::ISD::ADD, and llvm::SDNodeFlags::NoUnsignedWrap.

◆ m_ReassociatableOr()

template<typename... PatternTs>
ReassociatableOpc_match< PatternTs... > llvm::SDPatternMatch::m_ReassociatableOr ( const PatternTs &... Patterns)
inline

Definition at line 1523 of file SDPatternMatch.h.

References llvm::ISD::OR.

◆ m_Result()

template<unsigned ResNo, typename Pattern>
Result_match< ResNo, Pattern > llvm::SDPatternMatch::m_Result ( const Pattern & P)
inline

Match only if the SDValue is a certain result at ResNo.

Definition at line 74 of file SDPatternMatch.h.

References P.

Referenced by m_Load().

◆ m_Rotl()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_Rotl ( const LHS & L,
const RHS & R )
inline

◆ m_Rotr()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_Rotr ( const LHS & L,
const RHS & R )
inline

◆ m_ScalableVectorVT() [1/2]

auto llvm::SDPatternMatch::m_ScalableVectorVT ( )
inline

Definition at line 354 of file SDPatternMatch.h.

References m_Value().

◆ m_ScalableVectorVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_ScalableVectorVT ( const Pattern & P)
inline

Match scalable vector ValueTypes.

Definition at line 351 of file SDPatternMatch.h.

References P.

◆ m_SDiv()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_SDiv ( const LHS & L,
const RHS & R )
inline

Definition at line 920 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::SDIV.

◆ m_Select()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_Select ( const T0_P & Cond,
const T1_P & T,
const T2_P & F )
inline

Definition at line 535 of file SDPatternMatch.h.

References Cond, F, llvm::ISD::SELECT, and T.

Referenced by m_SelectCCLike(), m_SelectCCLike(), m_SelectLike(), and m_SpecificSelectCCLike().

◆ m_SelectCC() [1/2]

template<typename LTy, typename RTy, typename TTy, typename FTy>
auto llvm::SDPatternMatch::m_SelectCC ( const LTy & L,
const RTy & R,
const TTy & T,
const FTy & F )
inline

Match a SELECT_CC with any condition code.

Definition at line 591 of file SDPatternMatch.h.

References F, m_CondCode(), m_Node(), llvm::ISD::SELECT_CC, and T.

Referenced by m_SelectCCLike(), and m_SelectCCLike().

◆ m_SelectCC() [2/2]

template<typename LTy, typename RTy, typename TTy, typename FTy>
auto llvm::SDPatternMatch::m_SelectCC ( ISD::CondCode & CC,
const LTy & L,
const RTy & R,
const TTy & T,
const FTy & F )
inline

Match a SELECT_CC with any condition code and bind the condition code to CC.

Definition at line 598 of file SDPatternMatch.h.

References F, m_CondCode(), m_Node(), llvm::ISD::SELECT_CC, and T.

◆ m_SelectCCLike() [1/2]

template<typename LTy, typename RTy, typename TTy, typename FTy>
auto llvm::SDPatternMatch::m_SelectCCLike ( const LTy & L,
const RTy & R,
const TTy & T,
const FTy & F )
inline

Match a SELECT of a SETCC or a SELECT_CC with any condition code.

Definition at line 612 of file SDPatternMatch.h.

References F, m_AnyOf(), m_Select(), m_SelectCC(), m_SetCC(), and T.

◆ m_SelectCCLike() [2/2]

template<typename LTy, typename RTy, typename TTy, typename FTy>
auto llvm::SDPatternMatch::m_SelectCCLike ( ISD::CondCode & CC,
const LTy & L,
const RTy & R,
const TTy & T,
const FTy & F )
inline

Match a SELECT of a SETCC or a SELECT_CC with any condition code and bind the condition code to CC.

Definition at line 620 of file SDPatternMatch.h.

References F, m_AnyOf(), m_Select(), m_SelectCC(), m_SetCC(), and T.

◆ m_SelectLike()

template<typename T0_P, typename T1_P, typename T2_P>
auto llvm::SDPatternMatch::m_SelectLike ( const T0_P & Cond,
const T1_P & T,
const T2_P & F )
inline

Definition at line 546 of file SDPatternMatch.h.

References Cond, F, m_AnyOf(), m_Select(), m_VSelect(), and T.

◆ m_SetCC() [1/2]

template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match > llvm::SDPatternMatch::m_SetCC ( const T0_P & LHS,
const T1_P & RHS )
inline

◆ m_SetCC() [2/2]

template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match > llvm::SDPatternMatch::m_SetCC ( ISD::CondCode & CC,
const T0_P & LHS,
const T1_P & RHS )
inline

Match a SETCC with any condition code and bind the condition code to CC.

Definition at line 493 of file SDPatternMatch.h.

References LHS, m_CondCode(), RHS, and llvm::ISD::SETCC.

◆ m_SExt()

template<typename Opnd>
auto llvm::SDPatternMatch::m_SExt ( const Opnd & Op)
inline

Definition at line 1134 of file SDPatternMatch.h.

References llvm::ISD::SIGN_EXTEND.

Referenced by m_SExtLike(), and m_SExtOrSelf().

◆ m_SExtLike()

template<typename Opnd>
auto llvm::SDPatternMatch::m_SExtLike ( const Opnd & Op)
inline

Definition at line 1167 of file SDPatternMatch.h.

References m_AnyOf(), m_NNegZExt(), and m_SExt().

◆ m_SExtOrSelf()

template<typename Opnd>
auto llvm::SDPatternMatch::m_SExtOrSelf ( const Opnd & Op)
inline

Match a sext or identity Allows to peek through optional extensions.

Definition at line 1163 of file SDPatternMatch.h.

References m_AnyOf(), and m_SExt().

◆ m_Shl()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_Shl ( const LHS & L,
const RHS & R )
inline

◆ m_Shuffle() [1/2]

template<typename V1_t, typename V2_t>
BinaryOpc_match< V1_t, V2_t > llvm::SDPatternMatch::m_Shuffle ( const V1_t & v1,
const V2_t & v2 )
inline

Definition at line 1057 of file SDPatternMatch.h.

References llvm::ISD::VECTOR_SHUFFLE.

◆ m_Shuffle() [2/2]

template<typename V1_t, typename V2_t, typename Mask_t>
SDShuffle_match< V1_t, V2_t, Mask_t > llvm::SDPatternMatch::m_Shuffle ( const V1_t & v1,
const V2_t & v2,
const Mask_t & mask )
inline

Definition at line 1063 of file SDPatternMatch.h.

References mask().

◆ m_SMax()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_SMax ( const LHS & L,
const RHS & R )
inline

Definition at line 886 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::SMAX.

◆ m_SMaxLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_SMaxLike ( const LHS & L,
const RHS & R )
inline

Definition at line 891 of file SDPatternMatch.h.

References LHS, m_MaxMinLike(), and RHS.

Referenced by combineConcatVectorOps(), and combineVTRUNCSAT().

◆ m_SMin()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_SMin ( const LHS & L,
const RHS & R )
inline

Definition at line 876 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::SMIN.

◆ m_SMinLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_SMinLike ( const LHS & L,
const RHS & R )
inline

Definition at line 881 of file SDPatternMatch.h.

References LHS, m_MaxMinLike(), and RHS.

◆ m_Specific()

Value_match llvm::SDPatternMatch::m_Specific ( SDValue N)
inline

Definition at line 59 of file SDPatternMatch.h.

References assert(), and N.

Referenced by llvm::SDPatternMatch::SpecificNeg_match::match().

◆ m_SpecificCondCode()

CondCode_match llvm::SDPatternMatch::m_SpecificCondCode ( ISD::CondCode CC)
inline

Match a conditional code SDNode with a specific ISD::CondCode.

Definition at line 478 of file SDPatternMatch.h.

Referenced by m_c_SpecificSetCC(), m_SpecificSelectCC(), and m_SpecificSetCC().

◆ m_SpecificFP() [1/2]

SpecificFP_match llvm::SDPatternMatch::m_SpecificFP ( APFloat V)
inline

Match a specific float constant.

Definition at line 1339 of file SDPatternMatch.h.

◆ m_SpecificFP() [2/2]

SpecificFP_match llvm::SDPatternMatch::m_SpecificFP ( double V)
inline

Definition at line 1341 of file SDPatternMatch.h.

◆ m_SpecificInt() [1/2]

SpecificInt_match llvm::SDPatternMatch::m_SpecificInt ( APInt V)
inline

Match a specific integer constant or constant splat value.

Definition at line 1317 of file SDPatternMatch.h.

Referenced by m_IntrinsicWOChain().

◆ m_SpecificInt() [2/2]

SpecificInt_match llvm::SDPatternMatch::m_SpecificInt ( uint64_t V)
inline

Definition at line 1320 of file SDPatternMatch.h.

References uint64_t.

◆ m_SpecificNeg()

SpecificNeg_match llvm::SDPatternMatch::m_SpecificNeg ( SDValue V)
inline

Match a negation of a specific value V, either as sub(0, V) or as constant(s) that are the negation of V's constant(s).

Definition at line 1444 of file SDPatternMatch.h.

◆ m_SpecificOpc()

◆ m_SpecificScalarVT() [1/2]

auto llvm::SDPatternMatch::m_SpecificScalarVT ( EVT RefVT)
inline

Definition at line 294 of file SDPatternMatch.h.

References m_Value().

◆ m_SpecificScalarVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_SpecificScalarVT ( EVT RefVT,
const Pattern & P )
inline

Match a scalar ValueType.

Definition at line 290 of file SDPatternMatch.h.

References P.

◆ m_SpecificSelectCC()

template<typename LTy, typename RTy, typename TTy, typename FTy>
auto llvm::SDPatternMatch::m_SpecificSelectCC ( ISD::CondCode CC,
const LTy & L,
const RTy & R,
const TTy & T,
const FTy & F )
inline

Match a SELECT_CC with a specific condition code.

Definition at line 605 of file SDPatternMatch.h.

References F, m_Node(), m_SpecificCondCode(), llvm::ISD::SELECT_CC, and T.

Referenced by m_SpecificSelectCCLike().

◆ m_SpecificSelectCCLike()

template<typename LTy, typename RTy, typename TTy, typename FTy>
auto llvm::SDPatternMatch::m_SpecificSelectCCLike ( ISD::CondCode CC,
const LTy & L,
const RTy & R,
const TTy & T,
const FTy & F )
inline

Match a SELECT of a SETCC or a SELECT_CC with a specific condition code.

Definition at line 627 of file SDPatternMatch.h.

References F, m_AnyOf(), m_Select(), m_SpecificSelectCC(), m_SpecificSetCC(), and T.

◆ m_SpecificSetCC()

template<typename T0_P, typename T1_P>
TernaryOpc_match< T0_P, T1_P, CondCode_match > llvm::SDPatternMatch::m_SpecificSetCC ( ISD::CondCode CC,
const T0_P & LHS,
const T1_P & RHS )
inline

◆ m_SpecificVectorElementVT() [1/2]

auto llvm::SDPatternMatch::m_SpecificVectorElementVT ( EVT RefVT)
inline

Definition at line 308 of file SDPatternMatch.h.

References m_Value().

◆ m_SpecificVectorElementVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_SpecificVectorElementVT ( EVT RefVT,
const Pattern & P )
inline

Match a vector ValueType.

Definition at line 301 of file SDPatternMatch.h.

References P.

Referenced by combineBasicSADPattern(), and reassociateAddSubLong().

◆ m_SpecificVT() [1/2]

auto llvm::SDPatternMatch::m_SpecificVT ( EVT RefVT)
inline

Definition at line 281 of file SDPatternMatch.h.

References m_Value().

◆ m_SpecificVT() [2/2]

◆ m_SpliceRight()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_SpliceRight ( const T0_P & V1,
const T1_P & V2,
const T2_P & Offset )
inline

Definition at line 572 of file SDPatternMatch.h.

References llvm::Offset, llvm::V1, and llvm::ISD::VECTOR_SPLICE_RIGHT.

◆ m_Sra()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_Sra ( const LHS & L,
const RHS & R )
inline

Definition at line 939 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::SRA.

Referenced by foldAndToUsubsat().

◆ m_SRem()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_SRem ( const LHS & L,
const RHS & R )
inline

Definition at line 929 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::SREM.

◆ m_Srl()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_Srl ( const LHS & L,
const RHS & R )
inline

◆ m_Sub()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_Sub ( const LHS & L,
const RHS & R )
inline

Definition at line 819 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::SUB.

Referenced by m_Neg().

◆ m_TernaryOp()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_TernaryOp ( unsigned Opc,
const T0_P & Op0,
const T1_P & Op1,
const T2_P & Op2 )
inline

◆ m_True()

auto llvm::SDPatternMatch::m_True ( const SelectionDAG & DAG)
inline

Match true boolean value based on the information provided by TargetLowering.

Definition at line 1403 of file SDPatternMatch.h.

◆ m_Trunc()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_Trunc ( const Opnd & Op)
inline

Definition at line 1142 of file SDPatternMatch.h.

References llvm::ISD::TRUNCATE.

Referenced by m_TruncOrSelf().

◆ m_TruncOrSelf()

template<typename Opnd>
Or< UnaryOpc_match< Opnd >, Opnd > llvm::SDPatternMatch::m_TruncOrSelf ( const Opnd & Op)
inline

Match a trunc or identity Allows to peek through optional truncations.

Definition at line 1181 of file SDPatternMatch.h.

References m_Trunc().

◆ m_UDiv()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_UDiv ( const LHS & L,
const RHS & R )
inline

Definition at line 916 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::UDIV.

◆ m_UMax()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_UMax ( const LHS & L,
const RHS & R )
inline

Definition at line 906 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::UMAX.

◆ m_UMaxLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_UMaxLike ( const LHS & L,
const RHS & R )
inline

Definition at line 911 of file SDPatternMatch.h.

References LHS, m_MaxMinLike(), and RHS.

◆ m_UMin()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_UMin ( const LHS & L,
const RHS & R )
inline

Definition at line 896 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::UMIN.

◆ m_UMinLike()

template<typename LHS, typename RHS>
auto llvm::SDPatternMatch::m_UMinLike ( const LHS & L,
const RHS & R )
inline

Definition at line 901 of file SDPatternMatch.h.

References LHS, m_MaxMinLike(), and RHS.

◆ m_UnaryOp()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_UnaryOp ( unsigned Opc,
const Opnd & Op )
inline

Definition at line 1102 of file SDPatternMatch.h.

References Opc.

Referenced by combineVTRUNCSAT(), and foldBitOrderCrossLogicOp().

◆ m_Undef()

auto llvm::SDPatternMatch::m_Undef ( )
inline

Definition at line 159 of file SDPatternMatch.h.

References m_AnyOf(), llvm::ISD::POISON, and llvm::ISD::UNDEF.

◆ m_Unless()

template<typename Pred>
Not< Pred > llvm::SDPatternMatch::m_Unless ( const Pred & P)
inline

Match if the inner pattern does NOT match.

Definition at line 139 of file SDPatternMatch.h.

References P.

Referenced by m_NoneOf().

◆ m_URem()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS > llvm::SDPatternMatch::m_URem ( const LHS & L,
const RHS & R )
inline

Definition at line 925 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::UREM.

◆ m_Value() [1/3]

◆ m_Value() [2/3]

auto llvm::SDPatternMatch::m_Value ( SDValue & N)
inline

Definition at line 205 of file SDPatternMatch.h.

References N.

◆ m_Value() [3/3]

template<typename PredPattern>
auto llvm::SDPatternMatch::m_Value ( SDValue & N,
const PredPattern & P )
inline

Conditionally bind an SDValue based on the predicate.

Definition at line 208 of file SDPatternMatch.h.

References m_AllOf(), N, and P.

◆ m_VectorReverse()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_VectorReverse ( const Opnd & Op)
inline

Definition at line 1214 of file SDPatternMatch.h.

References llvm::ISD::VECTOR_REVERSE.

◆ m_VectorVT() [1/2]

auto llvm::SDPatternMatch::m_VectorVT ( )
inline

Definition at line 337 of file SDPatternMatch.h.

References m_Value().

◆ m_VectorVT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_VectorVT ( const Pattern & P)
inline

Match any vector ValueTypes.

Definition at line 334 of file SDPatternMatch.h.

References P.

◆ m_VScale()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_VScale ( const Opnd & Op)
inline

Definition at line 1185 of file SDPatternMatch.h.

References llvm::ISD::VSCALE.

◆ m_VSelect()

template<typename T0_P, typename T1_P, typename T2_P>
TernaryOpc_match< T0_P, T1_P, T2_P > llvm::SDPatternMatch::m_VSelect ( const T0_P & Cond,
const T1_P & T,
const T2_P & F )
inline

Definition at line 541 of file SDPatternMatch.h.

References Cond, F, T, and llvm::ISD::VSELECT.

Referenced by commuteSelect(), foldToMaskedStore(), and m_SelectLike().

◆ m_VT() [1/2]

auto llvm::SDPatternMatch::m_VT ( EVT & VT)
inline

Retreive the ValueType of the current SDValue.

Definition at line 255 of file SDPatternMatch.h.

References m_Value(), and ValueType_bind().

Referenced by combineStore(), and performCTPOPCombine().

◆ m_VT() [2/2]

template<typename Pattern>
auto llvm::SDPatternMatch::m_VT ( EVT & VT,
const Pattern & P )
inline

Definition at line 257 of file SDPatternMatch.h.

References P, and ValueType_bind().

◆ m_Xor()

template<typename LHS, typename RHS>
BinaryOpc_match< LHS, RHS, true > llvm::SDPatternMatch::m_Xor ( const LHS & L,
const RHS & R )
inline

Definition at line 860 of file SDPatternMatch.h.

References LHS, RHS, and llvm::ISD::XOR.

Referenced by m_BitwiseLogic(), and m_Not().

◆ m_Zero()

Zero_match llvm::SDPatternMatch::m_Zero ( bool AllowUndefs = false)
inline

Definition at line 1383 of file SDPatternMatch.h.

◆ m_ZExt()

template<typename Opnd>
UnaryOpc_match< Opnd > llvm::SDPatternMatch::m_ZExt ( const Opnd & Op)
inline

Definition at line 1125 of file SDPatternMatch.h.

References llvm::ISD::ZERO_EXTEND.

Referenced by m_ZExtOrSelf().

◆ m_ZExtOrSelf()

template<typename Opnd>
auto llvm::SDPatternMatch::m_ZExtOrSelf ( const Opnd & Op)
inline

Match a zext or identity Allows to peek through optional extensions.

Definition at line 1157 of file SDPatternMatch.h.

References m_AnyOf(), and m_ZExt().

◆ Not()

template<typename Pred>
llvm::SDPatternMatch::Not ( const Pred & P) -> Not< Pred >

References P.

◆ sd_match() [1/2]

template<typename Pattern>
bool llvm::SDPatternMatch::sd_match ( SDNode * N,
Pattern && P )
nodiscard

Definition at line 37 of file SDPatternMatch.h.

References N, P, and sd_match().

◆ sd_match() [2/2]

template<typename Pattern>
bool llvm::SDPatternMatch::sd_match ( SDValue N,
Pattern && P )
nodiscard

Definition at line 32 of file SDPatternMatch.h.

References N, and P.

Referenced by canonicalizeMaskForVLPredicate(), combineAdd(), combineAddMulh(), combineAnd(), combineAndNotOrIntoAndNotAnd(), combineAndOnGF2P8AFFINEQBOperand(), combineAndXorSubWithBMI(), combineBasicSADPattern(), combineBTToBitOpFlag(), combineCastedMaskArithmetic(), combineConcatVectorOfShuffles(), combineConcatVectorOps(), combineLogicBlendIntoConditionalNegate(), combineMaskBitOp(), combineNarrowableShiftedLoad(), combineNestedGF2P8AFFINEQB(), combineOr(), combineOrAndToBitfieldInsert(), combineOrOfSetCCToUSUBOCarry(), combineOrToBitfieldInsert(), combineOrWithGF2P8AFFINEQB(), combinePExtWideningAddAcc(), combinePExtWideningSubAcc(), combinePMULH(), combineSCALAR_TO_VECTOR(), combineSelect(), combineSetCC(), combineShiftLeft(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToPMULH(), combineShlAddIAddImpl(), combineStore(), combineTargetShuffle(), combineVectorInsert(), combineVTRUNCSAT(), combineXorOnGF2P8AFFINEQBOperand(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), commuteSelect(), detectPMADDUBSW(), detectSSatPattern(), detectSSatSPattern(), detectSSatUPattern(), detectUSatPattern(), detectUSatUPattern(), expandMulToAddOrSubOfShl(), foldAddSubBoolOfMaskedVal(), foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldMaskedShiftToUSHL(), foldReduceOperandViaVDOT4A(), foldSelectToUSATI(), foldSelectWithIdentityConstant(), foldSubCtlzNot(), foldToMaskedStore(), foldVSelectToSignBitSplatMask(), getShlAddShlAdd(), isFrexpExp(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isTruncateOf(), llvm::SDPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::match(), llvm::SDPatternMatch::SpecificInt_match::match(), llvm::SDPatternMatch::SpecificNeg_match::match(), llvm::SDPatternMatch::TernaryOpc_match< T0_P, T1_P, T2_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::UnaryOpc_match< Opnd_P, ExcludeChain >::match(), matchLogicBlend(), matchPMADDWD(), matchPMADDWD_2(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr(), matchVPMADD52(), narrowBitOpRMW(), perfomPextFirstTrueVectorCombine(), performAddTruncShiftCombine(), performANDORDUPNOTCombine(), performAnyAllCombine(), performBitcastCombine(), performBitmaskCombine(), performCTPOPCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performLastTrueTestVectorCombine(), performMaskedLoadToVPLoadCombine(), performMINMAXCombine(), performNanGuardFpToSatCombine(), performPredicateLoadCombine(), performReverseEVLCombine(), performVEXT_VLCombine(), performVP_STORECombine(), llvm::SDPatternMatch::ReassociatableOpc_match< PatternTs >::reassociatableMatchHelper(), reassociateAddSubLong(), reverseZExtICmpCombine(), sd_match(), llvm::X86TargetLowering::shouldFoldSelectWithIdentityConstant(), llvm::TargetLowering::SimplifyDemandedBits(), takeInexpensiveLog2(), tryToFoldExtendSelectLoad(), and visitORCommutative().

◆ TLI_pred_match()

template<typename PredFuncT, typename Pattern>
llvm::SDPatternMatch::TLI_pred_match ( const PredFuncT & Pred,
const Pattern & P ) -> TLI_pred_match< Pattern, PredFuncT >

References P.

◆ ValueType_bind()

template<typename Pattern>
llvm::SDPatternMatch::ValueType_bind ( const Pattern & P) -> ValueType_bind< Pattern >

References P.

Referenced by m_VT(), and m_VT().

◆ ValueType_match()

template<typename PredFuncT, typename Pattern>
llvm::SDPatternMatch::ValueType_match ( const PredFuncT & Pred,
const Pattern & P ) -> ValueType_match< Pattern, PredFuncT >

References P.