|
LLVM 24.0.0git
|
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) |
|
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().
|
inline |
Definition at line 817 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, and RHS.
Referenced by m_AddLike().
Definition at line 860 of file SDPatternMatch.h.
References LHS, m_Add(), m_AnyOf(), m_DisjointOr(), and RHS.
|
inline |
Match a aext or identity Allows to peek through optional extensions.
Definition at line 1194 of file SDPatternMatch.h.
References m_AnyExt().
Definition at line 148 of file SDPatternMatch.h.
|
inline |
Definition at line 1406 of file SDPatternMatch.h.
|
inline |
Definition at line 844 of file SDPatternMatch.h.
References llvm::ISD::AND, LHS, and RHS.
Referenced by m_BitwiseLogic().
|
inline |
Definition at line 1153 of file SDPatternMatch.h.
References llvm::ISD::ANY_EXTEND.
Referenced by combineSCALAR_TO_VECTOR(), m_AExtOrSelf(), and visitORCommutative().
Definition at line 152 of file SDPatternMatch.h.
Referenced by combineBasicSADPattern(), combinePExtWideningSubAcc(), getShlAddShlAdd(), m_Abs(), m_AddLike(), m_BitwiseLogic(), m_ExactSr(), m_MaxMinLike(), m_NoneOf(), m_NSWAddLike(), m_NUWAddLike(), m_PredicateAsCounterWhile(), m_SelectCCLike(), m_SelectCCLike(), m_SelectLike(), m_SExtLike(), m_SExtOrSelf(), m_SpecificSelectCCLike(), m_Undef(), m_ZExtOrSelf(), m_ZExtOrSExt(), llvm::RISCVTargetLowering::PerformDAGCombine(), and llvm::TargetLowering::SimplifyDemandedBits().
|
inline |
Match a floating-point +0.0 or -0.0 constant or splat.
Definition at line 1374 of file SDPatternMatch.h.
|
inline |
Definition at line 792 of file SDPatternMatch.h.
|
inline |
Definition at line 1126 of file SDPatternMatch.h.
References llvm::ISD::BITCAST.
|
inline |
Definition at line 1136 of file SDPatternMatch.h.
References llvm::ISD::BITREVERSE.
|
inline |
Definition at line 1131 of file SDPatternMatch.h.
References llvm::ISD::BSWAP.
|
inline |
Definition at line 799 of file SDPatternMatch.h.
|
inline |
Definition at line 811 of file SDPatternMatch.h.
|
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().
|
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.
|
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().
|
inline |
Definition at line 600 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 806 of file SDPatternMatch.h.
|
inline |
Definition at line 1121 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 1042 of file SDPatternMatch.h.
References llvm::ISD::CLMUL, LHS, and RHS.
Referenced by performSRLCombine().
|
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().
|
inline |
Match any conditional code SDNode and return its ISD::CondCode value.
Definition at line 489 of file SDPatternMatch.h.
References CC.
|
inline |
Match any integer constants or splat of an integer constant.
Definition at line 1292 of file SDPatternMatch.h.
Referenced by combineAdd(), combineAddMulh(), combineAndOnGF2P8AFFINEQBOperand(), combineNarrowableShiftedLoad(), combineNestedGF2P8AFFINEQB(), combineOrAndToBitfieldInsert(), combineOrToBitfieldInsert(), combineOrWithGF2P8AFFINEQB(), combinePMULH(), combineShlAddIAddImpl(), combineXorOnGF2P8AFFINEQBOperand(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), detectUSatPattern(), foldSubCtlzNot(), getShlAddShlAdd(), llvm::SDPatternMatch::SpecificInt_match::match(), llvm::SDPatternMatch::TypeSize_match< TS >::match(), matchPMADDWD(), matchPMADDWD_2(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr(), PerformARMBUILD_VECTORCombine(), performMINMAXCombine(), performSUBCombine(), and reverseZExtICmpCombine().
|
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.
|
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.
|
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.
|
inline |
Definition at line 1221 of file SDPatternMatch.h.
References llvm::ISD::CTLZ.
|
inline |
Definition at line 1217 of file SDPatternMatch.h.
References llvm::ISD::CTPOP.
|
inline |
Definition at line 1225 of file SDPatternMatch.h.
References llvm::ISD::CTTZ.
|
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.
|
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().
|
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().
Definition at line 962 of file SDPatternMatch.h.
References llvm::SDNodeFlags::Exact, LHS, m_AnyOf(), RHS, llvm::ISD::SRA, and llvm::ISD::SRL.
Referenced by expandMulToAddOrSubOfShl(), and getShlAddShlAdd().
|
inline |
Definition at line 1083 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_VECTOR_ELT, LHS, and RHS.
|
inline |
Definition at line 1088 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_SUBVECTOR, LHS, and RHS.
|
inline |
Definition at line 1166 of file SDPatternMatch.h.
References llvm::ISD::FABS.
|
inline |
Definition at line 1047 of file SDPatternMatch.h.
References llvm::ISD::FADD, LHS, and RHS.
|
inline |
Match false boolean value based on the information provided by TargetLowering.
Definition at line 1427 of file SDPatternMatch.h.
Definition at line 1062 of file SDPatternMatch.h.
References llvm::ISD::FDIV, LHS, and RHS.
|
inline |
Definition at line 354 of file SDPatternMatch.h.
References m_Value().
Match fixed-length vector ValueTypes.
Definition at line 351 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 337 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1057 of file SDPatternMatch.h.
References llvm::ISD::FMUL, LHS, and RHS.
|
inline |
Definition at line 1229 of file SDPatternMatch.h.
References llvm::ISD::FNEG.
|
inline |
Definition at line 1213 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_SINT.
|
inline |
Definition at line 1209 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_UINT.
Definition at line 1067 of file SDPatternMatch.h.
References llvm::ISD::FREM, LHS, and RHS.
|
inline |
Definition at line 979 of file SDPatternMatch.h.
References llvm::ISD::FSHL, and m_TernaryOp().
Referenced by llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::match().
|
inline |
Definition at line 1031 of file SDPatternMatch.h.
|
inline |
Definition at line 985 of file SDPatternMatch.h.
References llvm::ISD::FSHR, and m_TernaryOp().
Referenced by llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::match().
|
inline |
Definition at line 1037 of file SDPatternMatch.h.
Definition at line 1052 of file SDPatternMatch.h.
References llvm::ISD::FSUB, LHS, and RHS.
|
inline |
Definition at line 294 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 574 of file SDPatternMatch.h.
References llvm::ISD::INSERT_VECTOR_ELT.
|
inline |
Definition at line 581 of file SDPatternMatch.h.
References llvm::sampleprof::Base, llvm::ISD::INSERT_SUBVECTOR, LHS, RHS, and llvm::Sub.
Referenced by combineOr(), combineTargetShuffle(), llvm::RISCVTargetLowering::PerformDAGCombine(), and performPredicateLoadCombine().
|
inline |
Definition at line 329 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1473 of file SDPatternMatch.h.
References llvm::ISD::INTRINSIC_WO_CHAIN, m_Node(), and m_SpecificInt().
Referenced by isFrexpExp(), and perfomPextFirstTrueVectorCombine().
|
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.
|
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.
|
inline |
Definition at line 567 of file SDPatternMatch.h.
References llvm::ISD::LOAD, m_Result(), and llvm::Offset.
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().
|
inline |
Definition at line 839 of file SDPatternMatch.h.
References LHS, llvm::ISD::MUL, and RHS.
|
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().
|
inline |
Definition at line 1145 of file SDPatternMatch.h.
References llvm::SDNodeFlags::NonNeg, and llvm::ISD::ZERO_EXTEND.
Referenced by m_SExtLike().
| auto llvm::SDPatternMatch::m_Node | ( | const OpndPreds &... | Preds | ) |
Definition at line 405 of file SDPatternMatch.h.
References m_AllOf(), and m_SpecificOpc().
Referenced by combineAddPackedByteDot(), combineConcatVectorOfShuffles(), combinePExtWideningAddAcc(), m_IntrinsicWOChain(), m_SelectCC(), m_SelectCC(), m_SpecificSelectCC(), llvm::RISCVTargetLowering::PerformDAGCombine(), performVEXT_VLCombine(), and reassociateAddSubLong().
| auto llvm::SDPatternMatch::m_Node | ( | unsigned | Opcode, |
| const OpndPreds &... | preds ) |
Definition at line 411 of file SDPatternMatch.h.
References m_AllOf(), and m_SpecificOpc().
| auto llvm::SDPatternMatch::m_NoneOf | ( | const Preds &... | preds | ) |
Definition at line 156 of file SDPatternMatch.h.
References m_AnyOf(), and m_Unless().
|
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.
Definition at line 828 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, llvm::SDNodeFlags::NoSignedWrap, and RHS.
Referenced by m_NSWAddLike().
Definition at line 865 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_DisjointOr(), m_NSWAdd(), and RHS.
|
inline |
Definition at line 199 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 192 of file SDPatternMatch.h.
References P.
Referenced by combineConcatVectorOfShuffles().
Definition at line 822 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, llvm::SDNodeFlags::NoUnsignedWrap, and RHS.
Referenced by m_NUWAddLike().
Definition at line 870 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_DisjointOr(), m_NUWAdd(), and RHS.
Definition at line 1400 of file SDPatternMatch.h.
|
inline |
Definition at line 196 of file SDPatternMatch.h.
References m_Value().
Referenced by combineConcatVectorOfShuffles(), foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldSelectWithIdentityConstant(), foldVSelectToSignBitSplatMask(), performNanGuardFpToSatCombine(), llvm::TargetLowering::SimplifyDemandedBits(), takeInexpensiveLog2(), tryToFoldExtendSelectLoad(), and visitORCommutative().
|
inline |
Definition at line 188 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 849 of file SDPatternMatch.h.
References LHS, llvm::ISD::OR, and RHS.
Referenced by m_BitwiseLogic(), and llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr().
|
inline |
Definition at line 295 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 172 of file SDPatternMatch.h.
References llvm::ISD::POISON.
|
inline |
Definition at line 1568 of file SDPatternMatch.h.
References llvm::ISD::ADD.
|
inline |
Definition at line 1580 of file SDPatternMatch.h.
References llvm::ISD::AND.
|
inline |
Definition at line 1586 of file SDPatternMatch.h.
References llvm::ISD::MUL.
|
inline |
Definition at line 1592 of file SDPatternMatch.h.
References llvm::ISD::ADD, and llvm::SDNodeFlags::NoSignedWrap.
|
inline |
Definition at line 1599 of file SDPatternMatch.h.
References llvm::ISD::ADD, and llvm::SDNodeFlags::NoUnsignedWrap.
|
inline |
Definition at line 1574 of file SDPatternMatch.h.
References llvm::ISD::OR.
|
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().
Definition at line 968 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::ROTL.
Referenced by combineBTToBitOpFlag(), and llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::match().
Definition at line 973 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::ROTR.
Referenced by llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::match().
|
inline |
Definition at line 363 of file SDPatternMatch.h.
References m_Value().
Definition at line 935 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SDIV.
|
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().
|
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().
|
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.
|
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.
|
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.
|
inline |
Definition at line 561 of file SDPatternMatch.h.
References Cond, F, m_AnyOf(), m_Select(), m_VSelect(), and T.
|
inline |
Match a SETCC with any condition code.
Definition at line 499 of file SDPatternMatch.h.
References LHS, m_CondCode(), RHS, and llvm::ISD::SETCC.
Referenced by commuteSelect(), foldVSelectToSignBitSplatMask(), m_SelectCCLike(), m_SelectCCLike(), performCTPOPCombine(), and performMaskedLoadToVPLoadCombine().
|
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.
|
inline |
Definition at line 1149 of file SDPatternMatch.h.
References llvm::ISD::SIGN_EXTEND.
Referenced by m_SExtLike(), m_SExtOrSelf(), and m_ZExtOrSExt().
|
inline |
Definition at line 1182 of file SDPatternMatch.h.
References m_AnyOf(), m_NNegZExt(), and m_SExt().
|
inline |
Match a sext or identity Allows to peek through optional extensions.
Definition at line 1178 of file SDPatternMatch.h.
Definition at line 949 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SHL.
Referenced by llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr().
|
inline |
Definition at line 1072 of file SDPatternMatch.h.
References llvm::ISD::VECTOR_SHUFFLE.
|
inline |
Definition at line 1078 of file SDPatternMatch.h.
References mask().
|
inline |
Definition at line 901 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SMAX.
Definition at line 906 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
Referenced by combineConcatVectorOps(), and combineVTRUNCSAT().
|
inline |
Definition at line 891 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SMIN.
Definition at line 896 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
|
inline |
Definition at line 60 of file SDPatternMatch.h.
Referenced by llvm::SDPatternMatch::SpecificNeg_match::match().
|
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().
|
inline |
|
inline |
Definition at line 1361 of file SDPatternMatch.h.
References 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().
|
inline |
Definition at line 1340 of file SDPatternMatch.h.
|
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.
|
inline |
Definition at line 160 of file SDPatternMatch.h.
Referenced by combineAnd(), combineNarrowableShiftedLoad(), m_Node(), m_Node(), m_PredicateAsCounterWhile(), llvm::SDPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::TernaryOpc_match< T0_P, T1_P, T2_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::UnaryOpc_match< Opnd_P, ExcludeChain >::match(), and matchPMADDWD().
|
inline |
Definition at line 164 of file SDPatternMatch.h.
|
inline |
Definition at line 303 of file SDPatternMatch.h.
References m_Value().
|
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().
|
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.
|
inline |
Match a SETCC with a specific condition code.
Definition at line 516 of file SDPatternMatch.h.
References CC, LHS, m_SpecificCondCode(), RHS, and llvm::ISD::SETCC.
Referenced by combineOrOfSetCCToUSUBOCarry(), combineSelect(), combineShiftLeft(), combineShiftRightLogical(), foldAddSubBoolOfMaskedVal(), foldMaskedShiftToUSHL(), foldSelectToUSATI(), m_SpecificSelectCCLike(), and performNanGuardFpToSatCombine().
|
inline |
Definition at line 317 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a vector ValueType.
Definition at line 310 of file SDPatternMatch.h.
References P.
Referenced by combineBasicSADPattern(), and reassociateAddSubLong().
|
inline |
Definition at line 290 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a specific ValueType.
Definition at line 287 of file SDPatternMatch.h.
References P.
Referenced by combineAdd(), combineAddOfExts(), combineAnd(), combineBitcast(), combineCastedMaskArithmetic(), combineOr(), combineOrAndToBitfieldInsert(), combinePExtWideningAddAcc(), combinePExtWideningSubAcc(), combineSCALAR_TO_VECTOR(), combineVectorInsert(), foldSelectToUSATI(), m_Glue(), m_OtherVT(), performMINMAXCombine(), and performPredicateLoadCombine().
|
inline |
Definition at line 587 of file SDPatternMatch.h.
References llvm::Offset, llvm::V1, and llvm::ISD::VECTOR_SPLICE_RIGHT.
Definition at line 954 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SRA.
Referenced by foldAndToUsubsat().
Definition at line 944 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SREM.
Definition at line 958 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SRL.
Referenced by combineAdd(), combineBitcast(), combinePMULH(), combineVectorInsert(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr(), performSRLCombine(), performSUBCombine(), and reverseZExtICmpCombine().
Definition at line 834 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SUB.
Referenced by m_Neg().
|
inline |
Definition at line 594 of file SDPatternMatch.h.
References Opc.
Referenced by combineAndOnGF2P8AFFINEQBOperand(), combineNestedGF2P8AFFINEQB(), combineOrWithGF2P8AFFINEQB(), combineXorOnGF2P8AFFINEQBOperand(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), m_FShL(), and m_FShR().
|
inline |
Match true boolean value based on the information provided by TargetLowering.
Definition at line 1423 of file SDPatternMatch.h.
|
inline |
Definition at line 1157 of file SDPatternMatch.h.
References llvm::ISD::TRUNCATE.
Referenced by m_TruncOrSelf().
|
inline |
Match a trunc or identity Allows to peek through optional truncations.
Definition at line 1201 of file SDPatternMatch.h.
References m_Trunc().
Definition at line 931 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UDIV.
|
inline |
Definition at line 921 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UMAX.
Definition at line 926 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
|
inline |
Definition at line 911 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UMIN.
Definition at line 916 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
|
inline |
Definition at line 1117 of file SDPatternMatch.h.
References Opc.
Referenced by combineAddOfExts(), combineVTRUNCSAT(), and foldBitOrderCrossLogicOp().
|
inline |
Definition at line 168 of file SDPatternMatch.h.
References m_AnyOf(), llvm::ISD::POISON, and llvm::ISD::UNDEF.
Match if the inner pattern does NOT match.
Definition at line 144 of file SDPatternMatch.h.
Referenced by m_NoneOf().
Definition at line 940 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UREM.
|
inline |
Match any valid SDValue.
Definition at line 58 of file SDPatternMatch.h.
Referenced by m_FixedVectorVT(), m_FloatingPointVT(), m_IntegerVT(), m_NUses(), m_OneUse(), m_ScalableVectorVT(), m_SpecificScalarVT(), m_SpecificVectorElementVT(), m_SpecificVT(), m_VectorVT(), m_VT(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::match(), and llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr().
|
inline |
Definition at line 214 of file SDPatternMatch.h.
References N.
|
inline |
Definition at line 1234 of file SDPatternMatch.h.
References llvm::ISD::VECTOR_REVERSE.
|
inline |
Definition at line 346 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1205 of file SDPatternMatch.h.
References llvm::ISD::VSCALE.
|
inline |
Definition at line 556 of file SDPatternMatch.h.
References Cond, F, T, and llvm::ISD::VSELECT.
Referenced by commuteSelect(), foldToMaskedStore(), and m_SelectLike().
|
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().
Definition at line 266 of file SDPatternMatch.h.
References P, and ValueType_bind().
|
inline |
Definition at line 875 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::XOR.
Referenced by m_BitwiseLogic(), and m_Not().
|
inline |
Definition at line 1403 of file SDPatternMatch.h.
|
inline |
Definition at line 1140 of file SDPatternMatch.h.
References llvm::ISD::ZERO_EXTEND.
Referenced by m_ZExtOrSelf(), and m_ZExtOrSExt().
|
inline |
Match a zext or identity Allows to peek through optional extensions.
Definition at line 1172 of file SDPatternMatch.h.
|
inline |
Match a zext or sext.
Definition at line 1187 of file SDPatternMatch.h.
|
nodiscard |
Definition at line 38 of file SDPatternMatch.h.
References N, P, sd_match(), and SDValue().
|
nodiscard |
Definition at line 33 of file SDPatternMatch.h.
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().