|
LLVM 24.0.0git
|
Functions | |
| template<typename Pattern, typename MatchContext> | |
| bool | sd_context_match (SDValue N, const MatchContext &Ctx, Pattern &&P) |
| template<typename Pattern, typename MatchContext> | |
| bool | sd_context_match (SDNode *N, const MatchContext &Ctx, Pattern &&P) |
| template<typename Pattern> | |
| bool | sd_match (SDNode *N, const SelectionDAG *DAG, Pattern &&P) |
| template<typename Pattern> | |
| bool | sd_match (SDValue N, const SelectionDAG *DAG, Pattern &&P) |
| template<typename Pattern> | |
| bool | sd_match (SDNode *N, Pattern &&P) |
| template<typename Pattern> | |
| bool | sd_match (SDValue N, Pattern &&P) |
| Value_match | m_Value () |
| Match any valid SDValue. | |
| Value_match | m_Specific (SDValue N) |
| template<unsigned ResNo, typename Pattern> | |
| Result_match< ResNo, Pattern > | m_Result (const Pattern &P) |
| Match only if the SDValue is a certain result at ResNo. | |
| DeferredValue_match | m_Deferred (SDValue &V) |
| Similar to m_Specific, but the specific value to match is determined by another sub-pattern in the same sd_match() expression. | |
| template<typename Pred> | |
| Not (const Pred &P) -> Not< Pred > | |
| template<typename Pred> | |
| Not< Pred > | m_Unless (const Pred &P) |
| Match if the inner pattern does NOT match. | |
| template<typename... Preds> | |
| And< Preds... > | m_AllOf (const Preds &...preds) |
| template<typename... Preds> | |
| Or< Preds... > | m_AnyOf (const Preds &...preds) |
| template<typename... Preds> | |
| auto | m_NoneOf (const Preds &...preds) |
| Opcode_match | m_SpecificOpc (unsigned Opcode) |
| auto | m_Undef () |
| Opcode_match | m_Poison () |
| template<typename Pattern> | |
| NUses_match< 1, Pattern > | m_OneUse (const Pattern &P) |
| template<unsigned N, typename Pattern> | |
| NUses_match< N, Pattern > | m_NUses (const Pattern &P) |
| NUses_match< 1, Value_match > | m_OneUse () |
| template<unsigned N> | |
| NUses_match< N, Value_match > | m_NUses () |
| auto | m_Value (SDValue &N) |
| template<typename PredPattern> | |
| auto | m_Value (SDValue &N, const PredPattern &P) |
| Conditionally bind an SDValue based on the predicate. | |
| template<typename PredFuncT, typename Pattern> | |
| TLI_pred_match (const PredFuncT &Pred, const Pattern &P) -> TLI_pred_match< Pattern, PredFuncT > | |
| template<typename Pattern> | |
| auto | m_LegalOp (const Pattern &P) |
| Match legal SDNodes based on the information provided by TargetLowering. | |
| template<typename MatchContext, typename Pattern> | |
| SwitchContext< MatchContext, Pattern > | m_Context (const MatchContext &Ctx, Pattern &&P) |
| 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 Pattern &P) |
| Match legal ValueTypes based on the information provided by TargetLowering. | |
| template<typename... OpndPreds> | |
| auto | m_Node (unsigned Opcode, const OpndPreds &...preds) |
| template<typename T0_P, typename T1_P, typename T2_P> | |
| TernaryOpc_match< T0_P, T1_P, T2_P > | m_SetCC (const T0_P &LHS, const T1_P &RHS, const T2_P &CC) |
| template<typename T0_P, typename T1_P, typename T2_P> | |
| TernaryOpc_match< T0_P, T1_P, T2_P, true, false > | m_c_SetCC (const T0_P &LHS, const T1_P &RHS, const T2_P &CC) |
| 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, typename CCTy> | |
| auto | m_SelectCC (const LTy &L, const RTy &R, const TTy &T, const FTy &F, const CCTy &CC) |
| template<typename LTy, typename RTy, typename TTy, typename FTy, typename CCTy> | |
| auto | m_SelectCCLike (const LTy &L, const RTy &R, const TTy &T, const FTy &F, const CCTy &CC) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_BinOp (unsigned Opc, const LHS &L, const RHS &R, SDNodeFlags Flgs=SDNodeFlags()) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_c_BinOp (unsigned Opc, const LHS &L, const RHS &R, SDNodeFlags Flgs=SDNodeFlags()) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, false, true > | m_ChainedBinOp (unsigned Opc, const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true, true > | m_c_ChainedBinOp (unsigned Opc, const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_Add (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_NUWAdd (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_NSWAdd (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_Sub (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_Mul (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_And (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_Or (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_DisjointOr (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_AddLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_NSWAddLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_NUWAddLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_Xor (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_BitwiseLogic (const LHS &L, const RHS &R) |
| template<unsigned Opc, typename Pred, typename LHS, typename RHS> | |
| auto | m_MaxMinLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_SMin (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_SMinLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_SMax (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_SMaxLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_UMin (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_UMinLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_UMax (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_UMaxLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_UDiv (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_SDiv (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_URem (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_SRem (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_Shl (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_Sra (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_Srl (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_ExactSr (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_Rotl (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_Rotr (const LHS &L, const RHS &R) |
| template<typename T0_P, typename T1_P, typename T2_P> | |
| TernaryOpc_match< T0_P, T1_P, T2_P > | m_FShL (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2) |
| template<typename T0_P, typename T1_P, typename T2_P> | |
| TernaryOpc_match< T0_P, T1_P, T2_P > | m_FShR (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2) |
| template<typename T0_P, typename T1_P, typename T2_P> | |
| FunnelShiftLike_match< T0_P, T1_P, T2_P, true > | m_FShLLike (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2) |
| template<typename T0_P, typename T1_P, typename T2_P> | |
| FunnelShiftLike_match< T0_P, T1_P, T2_P, false > | m_FShRLike (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_Clmul (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_FAdd (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_FSub (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | m_FMul (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_FDiv (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_FRem (const LHS &L, const RHS &R) |
| template<typename V1_t, typename V2_t> | |
| BinaryOpc_match< V1_t, V2_t > | m_Shuffle (const V1_t &v1, const V2_t &v2) |
| template<typename V1_t, typename V2_t, typename Mask_t> | |
| SDShuffle_match< V1_t, V2_t, Mask_t > | m_Shuffle (const V1_t &v1, const V2_t &v2, const Mask_t &mask) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_ExtractElt (const LHS &Vec, const RHS &Idx) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | m_ExtractSubvector (const LHS &Vec, const RHS &Idx) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_UnaryOp (unsigned Opc, const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd, true > | m_ChainedUnaryOp (unsigned Opc, const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_BitCast (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_BSwap (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_BitReverse (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_ZExt (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_NNegZExt (const Opnd &Op) |
| template<typename Opnd> | |
| auto | m_SExt (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_AnyExt (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_Trunc (const Opnd &Op) |
| template<typename Opnd> | |
| auto | m_Abs (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_FAbs (const Opnd &Op) |
| template<typename Opnd> | |
| auto | m_ZExtOrSelf (const Opnd &Op) |
| Match a zext or identity Allows to peek through optional extensions. | |
| template<typename Opnd> | |
| auto | m_SExtOrSelf (const Opnd &Op) |
| Match a sext or identity Allows to peek through optional extensions. | |
| template<typename Opnd> | |
| auto | m_SExtLike (const Opnd &Op) |
| template<typename Opnd> | |
| Or< UnaryOpc_match< Opnd >, Opnd > | m_AExtOrSelf (const Opnd &Op) |
| Match a aext or identity Allows to peek through optional extensions. | |
| template<typename Opnd> | |
| Or< UnaryOpc_match< Opnd >, Opnd > | m_TruncOrSelf (const Opnd &Op) |
| Match a trunc or identity Allows to peek through optional truncations. | |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_VScale (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_FPToUI (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_FPToSI (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_Ctpop (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_Ctlz (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_Cttz (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_FNeg (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | m_VectorReverse (const Opnd &Op) |
| ConstantInt_match | m_ConstInt () |
| Match any integer constants or splat of an integer constant. | |
| ConstantInt_match | m_ConstInt (APInt &V) |
| Match any integer constants or splat of an integer constant; return the specific constant or constant splat value. | |
| Constant64_match< uint64_t > | m_ConstInt (uint64_t &V) |
| Match any integer constants or splat of an integer constant that can fit in 64 bits; return the specific constant or constant splat value, zero-extended to 64 bits. | |
| Constant64_match< int64_t > | m_ConstInt (int64_t &V) |
| Match any integer constants or splat of an integer constant that can fit in 64 bits; return the specific constant or constant splat value, sign-extended to 64 bits. | |
| SpecificInt_match | m_SpecificInt (APInt V) |
| Match a specific integer constant or constant splat value. | |
| SpecificInt_match | m_SpecificInt (uint64_t V) |
| SpecificFP_match | m_SpecificFP (APFloat V) |
| Match a specific float constant. | |
| SpecificFP_match | m_SpecificFP (double V) |
| AnyZeroFP_match | m_AnyZeroFP () |
| Match a floating-point +0.0 or -0.0 constant or splat. | |
| Negative_match | m_Negative () |
| template<typename Pattern> | |
| auto | m_Negative (const Pattern &P) |
| NonNegative_match | m_NonNegative () |
| template<typename Pattern> | |
| auto | m_NonNegative (const Pattern &P) |
| StrictlyPositive_match | m_StrictlyPositive () |
| template<typename Pattern> | |
| auto | m_StrictlyPositive (const Pattern &P) |
| NonPositive_match | m_NonPositive () |
| template<typename Pattern> | |
| auto | m_NonPositive (const Pattern &P) |
| NonZero_match | m_NonZero () |
| template<typename Pattern> | |
| auto | m_NonZero (const Pattern &P) |
| Ones_match | m_One (bool AllowUndefs=false) |
| Zero_match | m_Zero (bool AllowUndefs=false) |
| AllOnes_match | m_AllOnes (bool AllowUndefs=false) |
| auto | m_True () |
| Match true boolean value based on the information provided by TargetLowering. | |
| auto | m_False () |
| Match false boolean value based on the information provided by TargetLowering. | |
| 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 ValTy> | |
| BinaryOpc_match< Zero_match, ValTy, false > | m_Neg (const ValTy &V) |
| Match a negate as a sub(0, v) | |
| template<typename ValTy> | |
| BinaryOpc_match< ValTy, AllOnes_match, true > | m_Not (const ValTy &V) |
| Match a Not as a xor(v, -1) or xor(-1, v) | |
| template<unsigned IntrinsicId, typename... OpndPreds> | |
| auto | m_IntrinsicWOChain (const OpndPreds &...Opnds) |
| SpecificNeg_match | m_SpecificNeg (SDValue V) |
| Match a negation of a specific value V, either as sub(0, V) or as constant(s) that are the negation of V's constant(s). | |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | m_ReassociatableAdd (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | m_ReassociatableOr (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | m_ReassociatableAnd (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | m_ReassociatableMul (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | m_ReassociatableNSWAdd (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | m_ReassociatableNUWAdd (const PatternTs &...Patterns) |
|
inline |
Definition at line 1172 of file SDPatternMatch.h.
References llvm::ISD::ABS, llvm::ISD::ABS_MIN_POISON, and m_AnyOf().
Referenced by combineBasicSADPattern().
|
inline |
Definition at line 822 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, and RHS.
Referenced by m_AddLike().
Definition at line 865 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 1200 of file SDPatternMatch.h.
References m_AnyExt().
Definition at line 217 of file SDPatternMatch.h.
Referenced by combineAdd(), combineAnd(), combineBasicSADPattern(), combineLogicBlendIntoConditionalNegate(), combineSCALAR_TO_VECTOR(), commuteSelect(), m_Negative(), m_Node(), m_NonNegative(), m_NonPositive(), m_NonZero(), m_StrictlyPositive(), and m_Value().
|
inline |
Definition at line 1486 of file SDPatternMatch.h.
|
inline |
Definition at line 849 of file SDPatternMatch.h.
References llvm::ISD::AND, LHS, and RHS.
Referenced by m_BitwiseLogic().
|
inline |
Definition at line 1164 of file SDPatternMatch.h.
References llvm::ISD::ANY_EXTEND.
Referenced by combineSCALAR_TO_VECTOR(), m_AExtOrSelf(), and visitORCommutative().
Definition at line 221 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_SelectLike(), m_SExtLike(), m_SExtOrSelf(), m_Undef(), m_ZExtOrSelf(), llvm::RISCVTargetLowering::PerformDAGCombine(), and llvm::TargetLowering::SimplifyDemandedBits().
|
inline |
Match a floating-point +0.0 or -0.0 constant or splat.
Definition at line 1385 of file SDPatternMatch.h.
|
inline |
Definition at line 797 of file SDPatternMatch.h.
|
inline |
Definition at line 1137 of file SDPatternMatch.h.
References llvm::ISD::BITCAST.
|
inline |
Definition at line 1147 of file SDPatternMatch.h.
References llvm::ISD::BITREVERSE.
|
inline |
Definition at line 1142 of file SDPatternMatch.h.
References llvm::ISD::BSWAP.
|
inline |
Definition at line 804 of file SDPatternMatch.h.
|
inline |
Definition at line 816 of file SDPatternMatch.h.
|
inline |
Definition at line 571 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SETCC.
Referenced by combineOrOfSetCCToUSUBOCarry(), isTruncateOf(), performAnyAllCombine(), performBitcastCombine(), and performBitmaskCombine().
|
inline |
Definition at line 628 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 811 of file SDPatternMatch.h.
|
inline |
Definition at line 1132 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 1052 of file SDPatternMatch.h.
References llvm::ISD::CLMUL, LHS, and RHS.
|
inline |
Match any conditional code SDNode.
Definition at line 1553 of file SDPatternMatch.h.
Referenced by commuteSelect(), foldVSelectToSignBitSplatMask(), performAnyAllCombine(), performBitcastCombine(), and performMaskedLoadToVPLoadCombine().
|
inline |
Match any conditional code SDNode and return its ISD::CondCode value.
Definition at line 1555 of file SDPatternMatch.h.
|
inline |
Match any integer constants or splat of an integer constant.
Definition at line 1299 of file SDPatternMatch.h.
Referenced by combineAdd(), combineAddMulh(), combineAndOnGF2P8AFFINEQBOperand(), combineNarrowableShiftedLoad(), combineNestedGF2P8AFFINEQB(), combineOrAndToBitfieldInsert(), combineOrToBitfieldInsert(), combineOrWithGF2P8AFFINEQB(), combinePMULH(), combineShlAddIAddImpl(), combineXorOnGF2P8AFFINEQBOperand(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), detectUSatPattern(), foldSubCtlzNot(), getShlAddShlAdd(), m_False(), m_True(), llvm::SDPatternMatch::SpecificInt_match::match(), matchPMADDWD(), matchPMADDWD_2(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr(), performMINMAXCombine(), and reverseZExtICmpCombine().
|
inline |
Match any integer constants or splat of an integer constant; return the specific constant or constant splat value.
Definition at line 1302 of file SDPatternMatch.h.
|
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 1312 of file SDPatternMatch.h.
|
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 1306 of file SDPatternMatch.h.
References uint64_t.
|
inline |
Definition at line 328 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 1227 of file SDPatternMatch.h.
References llvm::ISD::CTLZ.
|
inline |
Definition at line 1223 of file SDPatternMatch.h.
References llvm::ISD::CTPOP.
|
inline |
Definition at line 1231 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 149 of file SDPatternMatch.h.
|
inline |
Definition at line 859 of file SDPatternMatch.h.
References llvm::SDNodeFlags::Disjoint, LHS, llvm::ISD::OR, and RHS.
Referenced by m_AddLike(), m_NSWAddLike(), and m_NUWAddLike().
Definition at line 967 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 1093 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_VECTOR_ELT, LHS, and RHS.
|
inline |
Definition at line 1098 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_SUBVECTOR, LHS, and RHS.
|
inline |
Definition at line 1177 of file SDPatternMatch.h.
References llvm::ISD::FABS.
|
inline |
Definition at line 1057 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 1512 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::getBooleanContents(), llvm::APInt::isZero(), m_ConstInt(), m_Value(), N, sd_match(), llvm::TargetLoweringBase::UndefinedBooleanContent, llvm::TargetLoweringBase::ZeroOrNegativeOneBooleanContent, and llvm::TargetLoweringBase::ZeroOrOneBooleanContent.
Definition at line 1072 of file SDPatternMatch.h.
References llvm::ISD::FDIV, LHS, and RHS.
|
inline |
Definition at line 445 of file SDPatternMatch.h.
References m_Value().
Match fixed-length vector ValueTypes.
Definition at line 442 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 428 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1067 of file SDPatternMatch.h.
References llvm::ISD::FMUL, LHS, and RHS.
|
inline |
Definition at line 1235 of file SDPatternMatch.h.
References llvm::ISD::FNEG.
|
inline |
Definition at line 1219 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_SINT.
|
inline |
Definition at line 1215 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_UINT.
Definition at line 1077 of file SDPatternMatch.h.
References llvm::ISD::FREM, LHS, and RHS.
|
inline |
Definition at line 984 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 1041 of file SDPatternMatch.h.
|
inline |
Definition at line 990 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 1047 of file SDPatternMatch.h.
Definition at line 1062 of file SDPatternMatch.h.
References llvm::ISD::FSUB, LHS, and RHS.
|
inline |
Definition at line 385 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 602 of file SDPatternMatch.h.
References llvm::ISD::INSERT_VECTOR_ELT.
|
inline |
Definition at line 609 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 420 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1576 of file SDPatternMatch.h.
References llvm::ISD::INTRINSIC_WO_CHAIN, m_Node(), and m_SpecificInt().
Referenced by isFrexpExp(), and perfomPextFirstTrueVectorCombine().
Match legal SDNodes based on the information provided by TargetLowering.
Definition at line 308 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::isOperationLegal(), N, and P.
Match legal ValueTypes based on the information provided by TargetLowering.
Definition at line 460 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::isTypeLegal(), N, and P.
|
inline |
Definition at line 595 of file SDPatternMatch.h.
References llvm::ISD::LOAD, m_Result(), and llvm::Offset.
Definition at line 890 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 844 of file SDPatternMatch.h.
References LHS, llvm::ISD::MUL, and RHS.
|
inline |
Match a negate as a sub(0, v)
Definition at line 1565 of file SDPatternMatch.h.
References m_Sub(), and llvm::PatternMatch::m_Zero().
Referenced by llvm::SDPatternMatch::SpecificNeg_match::match().
|
inline |
Definition at line 1458 of file SDPatternMatch.h.
Referenced by m_Negative().
Definition at line 1459 of file SDPatternMatch.h.
References m_AllOf(), m_Negative(), and P.
|
inline |
Definition at line 1156 of file SDPatternMatch.h.
References llvm::SDNodeFlags::NonNeg, and llvm::ISD::ZERO_EXTEND.
Referenced by m_SExtLike().
| auto llvm::SDPatternMatch::m_Node | ( | unsigned | Opcode, |
| const OpndPreds &... | preds ) |
Definition at line 497 of file SDPatternMatch.h.
References m_AllOf(), and m_SpecificOpc().
Referenced by combineConcatVectorOfShuffles(), combinePExtWideningAddAcc(), m_IntrinsicWOChain(), m_SelectCC(), llvm::RISCVTargetLowering::PerformDAGCombine(), performVEXT_VLCombine(), and reassociateAddSubLong().
| auto llvm::SDPatternMatch::m_NoneOf | ( | const Preds &... | preds | ) |
Definition at line 225 of file SDPatternMatch.h.
References m_AnyOf(), and m_Unless().
|
inline |
Definition at line 1462 of file SDPatternMatch.h.
Referenced by m_NonNegative().
Definition at line 1463 of file SDPatternMatch.h.
References m_AllOf(), m_NonNegative(), and P.
|
inline |
Definition at line 1472 of file SDPatternMatch.h.
Referenced by m_NonPositive().
Definition at line 1473 of file SDPatternMatch.h.
References m_AllOf(), m_NonPositive(), and P.
|
inline |
Definition at line 1476 of file SDPatternMatch.h.
Referenced by m_NonZero().
Definition at line 1477 of file SDPatternMatch.h.
References m_AllOf(), m_NonZero(), and P.
|
inline |
Match a Not as a xor(v, -1) or xor(-1, v)
Definition at line 1571 of file SDPatternMatch.h.
References llvm::MIPatternMatch::m_AllOnes(), and m_Xor().
Definition at line 833 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, llvm::SDNodeFlags::NoSignedWrap, and RHS.
Referenced by m_NSWAddLike().
Definition at line 870 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_DisjointOr(), m_NSWAdd(), and RHS.
|
inline |
Definition at line 265 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 258 of file SDPatternMatch.h.
References P.
Referenced by combineConcatVectorOfShuffles().
Definition at line 827 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, llvm::SDNodeFlags::NoUnsignedWrap, and RHS.
Referenced by m_NUWAddLike().
Definition at line 875 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_DisjointOr(), m_NUWAdd(), and RHS.
|
inline |
Definition at line 1480 of file SDPatternMatch.h.
|
inline |
Definition at line 262 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 254 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 854 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 386 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 237 of file SDPatternMatch.h.
References llvm::ISD::POISON.
|
inline |
Definition at line 1674 of file SDPatternMatch.h.
References llvm::ISD::ADD.
|
inline |
Definition at line 1686 of file SDPatternMatch.h.
References llvm::ISD::AND.
|
inline |
Definition at line 1692 of file SDPatternMatch.h.
References llvm::ISD::MUL.
|
inline |
Definition at line 1698 of file SDPatternMatch.h.
References llvm::ISD::ADD, and llvm::SDNodeFlags::NoSignedWrap.
|
inline |
Definition at line 1705 of file SDPatternMatch.h.
References llvm::ISD::ADD, and llvm::SDNodeFlags::NoUnsignedWrap.
|
inline |
Definition at line 1680 of file SDPatternMatch.h.
References llvm::ISD::OR.
|
inline |
Match only if the SDValue is a certain result at ResNo.
Definition at line 130 of file SDPatternMatch.h.
References P.
Referenced by m_Load().
Definition at line 973 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 978 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 454 of file SDPatternMatch.h.
References m_Value().
Definition at line 940 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SDIV.
|
inline |
Definition at line 578 of file SDPatternMatch.h.
References Cond, F, llvm::ISD::SELECT, and T.
Referenced by m_SelectCCLike(), and m_SelectLike().
|
inline |
Definition at line 633 of file SDPatternMatch.h.
References F, m_Node(), llvm::ISD::SELECT_CC, and T.
Referenced by m_SelectCCLike().
|
inline |
Definition at line 639 of file SDPatternMatch.h.
References F, m_AnyOf(), m_Select(), m_SelectCC(), m_SetCC(), and T.
|
inline |
Definition at line 589 of file SDPatternMatch.h.
References Cond, F, m_AnyOf(), m_Select(), m_VSelect(), and T.
|
inline |
Definition at line 565 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SETCC.
Referenced by combineAnd(), combineOrOfSetCCToUSUBOCarry(), combineSelect(), combineShiftLeft(), combineShiftRightLogical(), commuteSelect(), foldAddSubBoolOfMaskedVal(), foldMaskedShiftToUSHL(), foldSelectToUSATI(), foldVSelectToSignBitSplatMask(), m_SelectCCLike(), performCTPOPCombine(), performMaskedLoadToVPLoadCombine(), and performNanGuardFpToSatCombine().
|
inline |
Definition at line 1160 of file SDPatternMatch.h.
References llvm::ISD::SIGN_EXTEND.
Referenced by m_SExtLike(), and m_SExtOrSelf().
|
inline |
Definition at line 1193 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 1189 of file SDPatternMatch.h.
Definition at line 954 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 1082 of file SDPatternMatch.h.
References llvm::ISD::VECTOR_SHUFFLE.
|
inline |
Definition at line 1088 of file SDPatternMatch.h.
References mask().
|
inline |
Definition at line 906 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SMAX.
Definition at line 911 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
Referenced by combineConcatVectorOps(), and combineVTRUNCSAT().
|
inline |
Definition at line 896 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SMIN.
Definition at line 901 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
|
inline |
Definition at line 112 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 1559 of file SDPatternMatch.h.
Referenced by combineOrOfSetCCToUSUBOCarry(), combineSelect(), combineShiftLeft(), combineShiftRightLogical(), foldAddSubBoolOfMaskedVal(), foldMaskedShiftToUSHL(), foldSelectToUSATI(), isTruncateOf(), performAnyAllCombine(), performBitmaskCombine(), and performNanGuardFpToSatCombine().
|
inline |
Match a specific float constant.
Definition at line 1370 of file SDPatternMatch.h.
|
inline |
Definition at line 1372 of file SDPatternMatch.h.
|
inline |
Match a specific integer constant or constant splat value.
Definition at line 1347 of file SDPatternMatch.h.
Referenced by m_IntrinsicWOChain().
|
inline |
Definition at line 1350 of file SDPatternMatch.h.
References uint64_t.
|
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 1599 of file SDPatternMatch.h.
|
inline |
Definition at line 229 of file SDPatternMatch.h.
Referenced by combineNarrowableShiftedLoad(), m_Node(), m_PredicateAsCounterWhile(), llvm::SDPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::MaxMin_match< LHS_P, RHS_P, Pred_t, 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 394 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 408 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a vector ValueType.
Definition at line 401 of file SDPatternMatch.h.
References P.
Referenced by combineBasicSADPattern(), and reassociateAddSubLong().
|
inline |
Definition at line 381 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a specific ValueType.
Definition at line 378 of file SDPatternMatch.h.
References P.
Referenced by combineAdd(), combineAnd(), combineCastedMaskArithmetic(), combineOr(), combineOrAndToBitfieldInsert(), combinePExtWideningAddAcc(), combinePExtWideningSubAcc(), combineSCALAR_TO_VECTOR(), foldSelectToUSATI(), m_Glue(), m_OtherVT(), performMINMAXCombine(), and performPredicateLoadCombine().
|
inline |
Definition at line 615 of file SDPatternMatch.h.
References llvm::Offset, llvm::V1, and llvm::ISD::VECTOR_SPLICE_RIGHT.
Definition at line 959 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SRA.
Referenced by foldAndToUsubsat().
Definition at line 949 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SREM.
Definition at line 963 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SRL.
Referenced by combineAdd(), combinePMULH(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr(), and reverseZExtICmpCombine().
|
inline |
Definition at line 1466 of file SDPatternMatch.h.
Referenced by m_StrictlyPositive().
|
inline |
Definition at line 1469 of file SDPatternMatch.h.
References m_AllOf(), m_StrictlyPositive(), and P.
Definition at line 839 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SUB.
Referenced by m_Neg().
|
inline |
Definition at line 622 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 1492 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::getBooleanContents(), llvm::APInt::isAllOnes(), llvm::APInt::isOne(), m_ConstInt(), m_Value(), N, sd_match(), llvm::TargetLoweringBase::UndefinedBooleanContent, llvm::TargetLoweringBase::ZeroOrNegativeOneBooleanContent, and llvm::TargetLoweringBase::ZeroOrOneBooleanContent.
|
inline |
Definition at line 1168 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 1207 of file SDPatternMatch.h.
References m_Trunc().
Definition at line 936 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UDIV.
|
inline |
Definition at line 926 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UMAX.
Definition at line 931 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
|
inline |
Definition at line 916 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UMIN.
Definition at line 921 of file SDPatternMatch.h.
References LHS, m_MaxMinLike(), and RHS.
|
inline |
Definition at line 1128 of file SDPatternMatch.h.
References Opc.
Referenced by combineVTRUNCSAT(), and foldBitOrderCrossLogicOp().
|
inline |
Definition at line 233 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 213 of file SDPatternMatch.h.
References P.
Referenced by m_NoneOf().
Definition at line 945 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UREM.
|
inline |
Match any valid SDValue.
Definition at line 110 of file SDPatternMatch.h.
Referenced by m_False(), m_FixedVectorVT(), m_FloatingPointVT(), m_IntegerVT(), m_NUses(), m_OneUse(), m_ScalableVectorVT(), m_SpecificScalarVT(), m_SpecificVectorElementVT(), m_SpecificVT(), m_True(), 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 281 of file SDPatternMatch.h.
References N.
|
inline |
Definition at line 1240 of file SDPatternMatch.h.
References llvm::ISD::VECTOR_REVERSE.
|
inline |
Definition at line 437 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1211 of file SDPatternMatch.h.
References llvm::ISD::VSCALE.
|
inline |
Definition at line 584 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 352 of file SDPatternMatch.h.
References m_Value(), and ValueType_bind().
Referenced by combineStore(), and performCTPOPCombine().
Definition at line 354 of file SDPatternMatch.h.
References P, and ValueType_bind().
|
inline |
Definition at line 880 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::XOR.
Referenced by m_BitwiseLogic(), and m_Not().
|
inline |
Definition at line 1483 of file SDPatternMatch.h.
|
inline |
Definition at line 1151 of file SDPatternMatch.h.
References llvm::ISD::ZERO_EXTEND.
Referenced by m_ZExtOrSelf().
|
inline |
Match a zext or identity Allows to peek through optional extensions.
Definition at line 1183 of file SDPatternMatch.h.
|
nodiscard |
Definition at line 69 of file SDPatternMatch.h.
References N, P, and sd_context_match().
|
nodiscard |
Definition at line 63 of file SDPatternMatch.h.
Referenced by 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::MaxMin_match< LHS_P, RHS_P, Pred_t, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::SpecificInt_match::match(), llvm::SDPatternMatch::SpecificNeg_match::match(), llvm::SDPatternMatch::TernaryOpc_match< T0_P, T1_P, T2_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::UnaryOpc_match< Opnd_P, ExcludeChain >::match(), llvm::SDPatternMatch::FunnelShiftLike_match< T0_P, T1_P, T2_P, Left >::matchShiftOr(), llvm::SDPatternMatch::ReassociatableOpc_match< PatternTs >::reassociatableMatchHelper(), sd_context_match(), sd_match(), and sd_match().
|
nodiscard |
Definition at line 75 of file SDPatternMatch.h.
References N, P, and sd_context_match().
Referenced by canonicalizeMaskForVLPredicate(), combineAdd(), combineAddMulh(), combineAnd(), combineAndNotOrIntoAndNotAnd(), combineAndOnGF2P8AFFINEQBOperand(), combineAndXorSubWithBMI(), combineBasicSADPattern(), combineBTToBitOpFlag(), combineCastedMaskArithmetic(), combineConcatVectorOfShuffles(), combineConcatVectorOps(), combineLogicBlendIntoConditionalNegate(), combineMaskBitOp(), combineNarrowableShiftedLoad(), combineNestedGF2P8AFFINEQB(), combineOr(), combineOrAndToBitfieldInsert(), combineOrOfSetCCToUSUBOCarry(), combineOrToBitfieldInsert(), combineOrWithGF2P8AFFINEQB(), combinePExtWideningAddAcc(), combinePExtWideningSubAcc(), combinePMULH(), combineSCALAR_TO_VECTOR(), combineSelect(), combineSetCC(), combineShiftLeft(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToPMULH(), combineShlAddIAddImpl(), combineStore(), combineTargetShuffle(), combineVectorInsert(), combineVTRUNCSAT(), combineXorOnGF2P8AFFINEQBOperand(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), commuteSelect(), detectPMADDUBSW(), detectSSatPattern(), detectSSatSPattern(), detectSSatUPattern(), detectUSatPattern(), detectUSatUPattern(), expandMulToAddOrSubOfShl(), foldAddSubBoolOfMaskedVal(), foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldMaskedShiftToUSHL(), foldReduceOperandViaVDOT4A(), foldSelectToUSATI(), foldSelectWithIdentityConstant(), foldSubCtlzNot(), foldToMaskedStore(), foldVSelectToSignBitSplatMask(), getShlAddShlAdd(), isFrexpExp(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isTruncateOf(), m_False(), m_True(), matchLogicBlend(), matchPMADDWD(), matchPMADDWD_2(), matchVPMADD52(), narrowBitOpRMW(), perfomPextFirstTrueVectorCombine(), performAddTruncShiftCombine(), performANDORDUPNOTCombine(), performAnyAllCombine(), performBitcastCombine(), performBitmaskCombine(), performCTPOPCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performLastTrueTestVectorCombine(), performMaskedLoadToVPLoadCombine(), performMINMAXCombine(), performNanGuardFpToSatCombine(), performPredicateLoadCombine(), performReverseEVLCombine(), performVEXT_VLCombine(), performVP_STORECombine(), reassociateAddSubLong(), reverseZExtICmpCombine(), sd_match(), sd_match(), llvm::X86TargetLowering::shouldFoldSelectWithIdentityConstant(), llvm::TargetLowering::SimplifyDemandedBits(), takeInexpensiveLog2(), tryToFoldExtendSelectLoad(), and visitORCommutative().
|
nodiscard |
Definition at line 85 of file SDPatternMatch.h.
References N, P, and sd_match().
|
nodiscard |
Definition at line 80 of file SDPatternMatch.h.
References N, P, and sd_context_match().
|
nodiscard |
Definition at line 90 of file SDPatternMatch.h.
References N, P, and sd_match().
| llvm::SDPatternMatch::TLI_pred_match | ( | const PredFuncT & | Pred, |
| const Pattern & | P ) -> TLI_pred_match< Pattern, PredFuncT > |
References P.