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  FixedOpcode_match
struct  FunnelShiftLike_match
struct  m_Mask
struct  m_SpecificMask
struct  MaxMin_match
struct  Not
struct  NUses_match
struct  One_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  TypeSize_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)
template<unsigned Opcode>
auto m_SpecificOpc ()
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<unsigned Opcode, typename... OpndPreds>
auto m_Node (const OpndPreds &...Preds)
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>
auto m_ZExtOrSExt (const Opnd &Op)
 Match a zext or sext.
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.
One_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)
TypeSize_match< ElementCount > m_ElementCount (ElementCount &V)
 Match any integer constant or constant multiple of VSCALE that can be represented using ElementCount.
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 1161 of file SDPatternMatch.h.

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

Referenced by combineBasicSADPattern(), and trySQABSCombine().

◆ 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 817 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 860 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 1194 of file SDPatternMatch.h.

References m_AnyExt().

◆ m_AllOf()

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

Definition at line 148 of file SDPatternMatch.h.

Referenced by m_Node(), m_Node(), and m_Value().

◆ m_AllOnes()

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

Definition at line 1406 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 844 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 1153 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 1374 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 792 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 1126 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 1136 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 880 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 1131 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 799 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 811 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 525 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 534 of file SDPatternMatch.h.

References CC, 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 543 of file SDPatternMatch.h.

References CC, 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 600 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 806 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 1121 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 1042 of file SDPatternMatch.h.

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

Referenced by performSRLCombine().

◆ m_CondCode() [1/2]

CondCode_match llvm::SDPatternMatch::m_CondCode ( )
inline

Match any conditional code SDNode.

Definition at line 487 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 489 of file SDPatternMatch.h.

References CC.

◆ 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 1295 of file SDPatternMatch.h.

References V.

◆ 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 1305 of file SDPatternMatch.h.

References V.

◆ 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 1299 of file SDPatternMatch.h.

References uint64_t, and V.

◆ m_Ctlz()

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

Definition at line 1221 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 1217 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 1225 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 92 of file SDPatternMatch.h.

References V.

◆ 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 854 of file SDPatternMatch.h.

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

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

◆ m_ElementCount()

TypeSize_match< ElementCount > llvm::SDPatternMatch::m_ElementCount ( ElementCount & V)
inline

Match any integer constant or constant multiple of VSCALE that can be represented using ElementCount.

Definition at line 1468 of file SDPatternMatch.h.

References V.

Referenced by clampDynamicVectorIndex().

◆ 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 1083 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 1088 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 1166 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 1047 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 1427 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 1062 of file SDPatternMatch.h.

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

◆ m_FixedVectorVT() [1/2]

auto llvm::SDPatternMatch::m_FixedVectorVT ( )
inline

Definition at line 354 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 351 of file SDPatternMatch.h.

References P.

◆ m_FloatingPointVT() [1/2]

auto llvm::SDPatternMatch::m_FloatingPointVT ( )
inline

Definition at line 337 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 334 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 1057 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 1229 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 1213 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 1209 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 1067 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 1031 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 1037 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 1052 of file SDPatternMatch.h.

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

◆ m_Glue()

auto llvm::SDPatternMatch::m_Glue ( )
inline

Definition at line 294 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 574 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 329 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 326 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 238 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 370 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 567 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 885 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 839 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 1431 of file SDPatternMatch.h.

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

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 1145 of file SDPatternMatch.h.

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

Referenced by m_SExtLike().

◆ m_Node() [1/2]

◆ m_Node() [2/2]

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

Definition at line 411 of file SDPatternMatch.h.

References m_AllOf(), and m_SpecificOpc().

◆ m_NoneOf()

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

Definition at line 156 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 1437 of file SDPatternMatch.h.

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

◆ m_NSWAdd()

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

Definition at line 828 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 865 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 199 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 192 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 822 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 870 of file SDPatternMatch.h.

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

◆ m_One()

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

Definition at line 1400 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 188 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 295 of file SDPatternMatch.h.

References m_SpecificVT().

◆ m_Poison()

Opcode_match llvm::SDPatternMatch::m_Poison ( )
inline

Definition at line 172 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 1568 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 1580 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 1586 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 1592 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 1599 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 1574 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 75 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 363 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 360 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 935 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 550 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 606 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 613 of file SDPatternMatch.h.

References CC, 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 627 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 635 of file SDPatternMatch.h.

References CC, 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 561 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 508 of file SDPatternMatch.h.

References CC, 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 1149 of file SDPatternMatch.h.

References llvm::ISD::SIGN_EXTEND.

Referenced by m_SExtLike(), m_SExtOrSelf(), and m_ZExtOrSExt().

◆ m_SExtLike()

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

Definition at line 1182 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 1178 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 1072 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 1078 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 901 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 906 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 891 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 896 of file SDPatternMatch.h.

References LHS, m_MaxMinLike(), and RHS.

◆ m_Specific()

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

Definition at line 60 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 493 of file SDPatternMatch.h.

References CC.

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 1359 of file SDPatternMatch.h.

References V.

◆ m_SpecificFP() [2/2]

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

Definition at line 1361 of file SDPatternMatch.h.

References V.

◆ 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 1337 of file SDPatternMatch.h.

References V.

Referenced by m_IntrinsicWOChain().

◆ m_SpecificInt() [2/2]

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

Definition at line 1340 of file SDPatternMatch.h.

References uint64_t, and V.

◆ 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 1495 of file SDPatternMatch.h.

References V.

◆ m_SpecificOpc() [1/2]

◆ m_SpecificOpc() [2/2]

Opcode_match llvm::SDPatternMatch::m_SpecificOpc ( unsigned Opcode)
inline

Definition at line 164 of file SDPatternMatch.h.

◆ m_SpecificScalarVT() [1/2]

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

Definition at line 303 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 299 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 620 of file SDPatternMatch.h.

References CC, 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 642 of file SDPatternMatch.h.

References CC, 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 317 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 310 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 290 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 587 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 954 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 944 of file SDPatternMatch.h.

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

◆ m_Srl()

◆ 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 834 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 1423 of file SDPatternMatch.h.

◆ m_Trunc()

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

Definition at line 1157 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 1201 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 931 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 921 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 926 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 911 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 916 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 1117 of file SDPatternMatch.h.

References Opc.

Referenced by combineAddOfExts(), combineVTRUNCSAT(), and foldBitOrderCrossLogicOp().

◆ m_Undef()

auto llvm::SDPatternMatch::m_Undef ( )
inline

Definition at line 168 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 144 of file SDPatternMatch.h.

References P, and Pred.

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 940 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 214 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 217 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 1234 of file SDPatternMatch.h.

References llvm::ISD::VECTOR_REVERSE.

◆ m_VectorVT() [1/2]

auto llvm::SDPatternMatch::m_VectorVT ( )
inline

Definition at line 346 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 343 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 1205 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 556 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 264 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 266 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 875 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 1403 of file SDPatternMatch.h.

◆ m_ZExt()

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

Definition at line 1140 of file SDPatternMatch.h.

References llvm::ISD::ZERO_EXTEND.

Referenced by m_ZExtOrSelf(), and m_ZExtOrSExt().

◆ 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 1172 of file SDPatternMatch.h.

References m_AnyOf(), and m_ZExt().

◆ m_ZExtOrSExt()

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

Match a zext or sext.

Definition at line 1187 of file SDPatternMatch.h.

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

◆ Not()

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

References P, and Pred.

◆ sd_match() [1/2]

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

Definition at line 38 of file SDPatternMatch.h.

References N, P, sd_match(), and SDValue().

◆ sd_match() [2/2]

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

Definition at line 33 of file SDPatternMatch.h.

References N, and P.

Referenced by canonicalizeMaskForVLPredicate(), clampDynamicVectorIndex(), combineAdd(), combineAddMulh(), combineAddOfExts(), combineAddPackedByteDot(), combineAnd(), combineAndNotOrIntoAndNotAnd(), combineAndOnGF2P8AFFINEQBOperand(), combineAndXorSubWithBMI(), combineBasicSADPattern(), combineBitcast(), combineBTToBitOpFlag(), combineCastedMaskArithmetic(), combineConcatVectorOfShuffles(), combineConcatVectorOps(), combineLogicBlendIntoConditionalNegate(), combineMaskBitOp(), combineNarrowableShiftedLoad(), combineNegOfSelectCCSubs(), 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::TypeSize_match< TS >::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(), PerformARMBUILD_VECTORCombine(), performBitcastCombine(), performBitmaskCombine(), performCTPOPCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performLastTrueTestVectorCombine(), performMaskedLoadToVPLoadCombine(), performMINMAXCombine(), performNanGuardFpToSatCombine(), performPredicateLoadCombine(), performReverseEVLCombine(), performSRLCombine(), performSUBCombine(), performVEXT_VLCombine(), performVP_STORECombine(), llvm::SDPatternMatch::ReassociatableOpc_match< PatternTs >::reassociatableMatchHelper(), reassociateAddSubLong(), reverseZExtICmpCombine(), sd_match(), llvm::X86TargetLowering::shouldFoldSelectWithIdentityConstant(), llvm::TargetLowering::SimplifyDemandedBits(), takeInexpensiveLog2(), trySQABSCombine(), 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, and Pred.

◆ 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, and Pred.