|
LLVM 23.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_Opc (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) |
| ValueType_bind | m_VT (EVT &VT) |
| Retreive the ValueType of the current SDValue. | |
| 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_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> | |
| 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> | |
| 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 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> | |
| UnaryOpc_match< Opnd > | 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) |
| 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) |
| 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 1076 of file SDPatternMatch.h.
References llvm::ISD::ABS.
Referenced by combineBasicSADPattern().
|
inline |
Definition at line 805 of file SDPatternMatch.h.
References llvm::ISD::ADD, LHS, and RHS.
Referenced by m_AddLike().
Definition at line 836 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 1103 of file SDPatternMatch.h.
References m_AnyExt().
Definition at line 214 of file SDPatternMatch.h.
Referenced by combineAdd(), combineAnd(), combineBasicSADPattern(), combineLogicBlendIntoConditionalNegate(), combineNarrowableShiftedLoad(), combineSCALAR_TO_VECTOR(), commuteSelect(), m_Negative(), m_Node(), m_NonNegative(), m_NonPositive(), m_NonZero(), m_StrictlyPositive(), and matchPMADDWD().
|
inline |
Definition at line 1357 of file SDPatternMatch.h.
|
inline |
Definition at line 820 of file SDPatternMatch.h.
References llvm::ISD::AND, LHS, and RHS.
Referenced by m_BitwiseLogic().
|
inline |
Definition at line 1068 of file SDPatternMatch.h.
References llvm::ISD::ANY_EXTEND.
Referenced by combineSCALAR_TO_VECTOR(), m_AExtOrSelf(), and visitORCommutative().
Definition at line 218 of file SDPatternMatch.h.
Referenced by combineBasicSADPattern(), getShlAddShlAdd(), m_AddLike(), m_BitwiseLogic(), m_ExactSr(), m_MaxMinLike(), m_NoneOf(), m_SelectCCLike(), m_SelectLike(), m_SExtLike(), m_SExtOrSelf(), m_SMaxLike(), m_SMinLike(), m_UMaxLike(), m_UMinLike(), m_Undef(), m_ZExtOrSelf(), llvm::RISCVTargetLowering::PerformDAGCombine(), and llvm::TargetLowering::SimplifyDemandedBits().
|
inline |
Definition at line 780 of file SDPatternMatch.h.
|
inline |
Definition at line 1041 of file SDPatternMatch.h.
References llvm::ISD::BITCAST.
|
inline |
Definition at line 1051 of file SDPatternMatch.h.
References llvm::ISD::BITREVERSE.
|
inline |
Definition at line 1046 of file SDPatternMatch.h.
References llvm::ISD::BSWAP.
|
inline |
Definition at line 787 of file SDPatternMatch.h.
|
inline |
Definition at line 799 of file SDPatternMatch.h.
|
inline |
Definition at line 561 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SETCC.
Referenced by isTruncateOf(), performAnyAllCombine(), and performBitcastCombine().
|
inline |
Definition at line 611 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 794 of file SDPatternMatch.h.
|
inline |
Definition at line 1036 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 956 of file SDPatternMatch.h.
References llvm::ISD::CLMUL, LHS, and RHS.
|
inline |
Match any conditional code SDNode.
Definition at line 1424 of file SDPatternMatch.h.
Referenced by commuteSelect(), foldVSelectToSignBitSplatMask(), performAnyAllCombine(), and performBitcastCombine().
|
inline |
Match any conditional code SDNode and return its ISD::CondCode value.
Definition at line 1426 of file SDPatternMatch.h.
|
inline |
Match any integer constants or splat of an integer constant.
Definition at line 1197 of file SDPatternMatch.h.
Referenced by combineAdd(), combineNarrowableShiftedLoad(), combineOrAndToBitfieldInsert(), combineOrToBitfieldInsert(), combinePMULH(), combineShlAddIAddImpl(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), detectUSatPattern(), foldSubCtlzNot(), getShlAddShlAdd(), m_False(), m_True(), llvm::SDPatternMatch::SpecificInt_match::match(), matchPMADDWD(), matchPMADDWD_2(), 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 1200 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 1210 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 1204 of file SDPatternMatch.h.
|
inline |
Definition at line 329 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 1130 of file SDPatternMatch.h.
References llvm::ISD::CTLZ.
Referenced by foldSubCtlzNot().
|
inline |
Definition at line 1126 of file SDPatternMatch.h.
References llvm::ISD::CTPOP.
|
inline |
Definition at line 1134 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 146 of file SDPatternMatch.h.
|
inline |
Definition at line 830 of file SDPatternMatch.h.
References llvm::SDNodeFlags::Disjoint, LHS, llvm::ISD::OR, and RHS.
Referenced by m_AddLike().
Definition at line 940 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 997 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_VECTOR_ELT, LHS, and RHS.
|
inline |
Definition at line 1002 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_SUBVECTOR, LHS, and RHS.
|
inline |
Definition at line 1080 of file SDPatternMatch.h.
References llvm::ISD::FABS.
|
inline |
Definition at line 961 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 1383 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 976 of file SDPatternMatch.h.
References llvm::ISD::FDIV, LHS, and RHS.
|
inline |
Definition at line 436 of file SDPatternMatch.h.
References m_Value().
Match fixed-length vector ValueTypes.
Definition at line 433 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 419 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 971 of file SDPatternMatch.h.
References llvm::ISD::FMUL, LHS, and RHS.
|
inline |
Definition at line 1138 of file SDPatternMatch.h.
References llvm::ISD::FNEG.
|
inline |
Definition at line 1122 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_SINT.
|
inline |
Definition at line 1118 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_UINT.
Definition at line 981 of file SDPatternMatch.h.
References llvm::ISD::FREM, LHS, and RHS.
Definition at line 966 of file SDPatternMatch.h.
References llvm::ISD::FSUB, LHS, and RHS.
|
inline |
Definition at line 376 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 592 of file SDPatternMatch.h.
References llvm::ISD::INSERT_VECTOR_ELT.
|
inline |
Definition at line 599 of file SDPatternMatch.h.
References llvm::sampleprof::Base, llvm::ISD::INSERT_SUBVECTOR, LHS, RHS, and llvm::Sub.
Referenced by combineOr(), combineTargetShuffle(), and llvm::RISCVTargetLowering::PerformDAGCombine().
|
inline |
Definition at line 411 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1447 of file SDPatternMatch.h.
References llvm::ISD::INTRINSIC_WO_CHAIN, m_Node(), and m_SpecificInt().
Match legal SDNodes based on the information provided by TargetLowering.
Definition at line 309 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::isOperationLegal(), N, and P.
Match legal ValueTypes based on the information provided by TargetLowering.
Definition at line 451 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::isTypeLegal(), N, and P.
|
inline |
Definition at line 585 of file SDPatternMatch.h.
References llvm::ISD::LOAD, m_Result(), and llvm::Offset.
Definition at line 851 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 815 of file SDPatternMatch.h.
References LHS, llvm::ISD::MUL, and RHS.
|
inline |
Match a negate as a sub(0, v)
Definition at line 1436 of file SDPatternMatch.h.
References m_Sub(), and llvm::PatternMatch::m_Zero().
Referenced by llvm::SDPatternMatch::SpecificNeg_match::match().
|
inline |
Definition at line 1329 of file SDPatternMatch.h.
Referenced by m_Negative(), m_SMaxLike(), m_SMinLike(), m_UMaxLike(), and m_UMinLike().
Definition at line 1330 of file SDPatternMatch.h.
References m_AllOf(), m_Negative(), and P.
|
inline |
Definition at line 1060 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 488 of file SDPatternMatch.h.
References m_AllOf(), and m_Opc().
Referenced by combineAdd(), m_IntrinsicWOChain(), m_SelectCC(), and llvm::RISCVTargetLowering::PerformDAGCombine().
| auto llvm::SDPatternMatch::m_NoneOf | ( | const Preds &... | preds | ) |
Definition at line 222 of file SDPatternMatch.h.
References m_AnyOf(), and m_Unless().
|
inline |
Definition at line 1333 of file SDPatternMatch.h.
Referenced by m_NonNegative(), m_SMaxLike(), m_SMinLike(), m_UMaxLike(), and m_UMinLike().
Definition at line 1334 of file SDPatternMatch.h.
References m_AllOf(), m_NonNegative(), and P.
|
inline |
Definition at line 1343 of file SDPatternMatch.h.
Referenced by m_NonPositive().
Definition at line 1344 of file SDPatternMatch.h.
References m_AllOf(), m_NonPositive(), and P.
|
inline |
Definition at line 1347 of file SDPatternMatch.h.
Referenced by m_NonZero().
Definition at line 1348 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 1442 of file SDPatternMatch.h.
References llvm::PatternMatch::m_AllOnes(), and m_Xor().
|
inline |
Definition at line 260 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 253 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 1351 of file SDPatternMatch.h.
|
inline |
Definition at line 257 of file SDPatternMatch.h.
References m_Value().
Referenced by foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldSelectWithIdentityConstant(), foldVSelectToSignBitSplatMask(), llvm::TargetLowering::SimplifyDemandedBits(), takeInexpensiveLog2(), tryToFoldExtendSelectLoad(), and visitORCommutative().
|
inline |
Definition at line 249 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 226 of file SDPatternMatch.h.
Referenced by combineNarrowableShiftedLoad(), m_Node(), 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 825 of file SDPatternMatch.h.
References LHS, llvm::ISD::OR, and RHS.
Referenced by m_BitwiseLogic().
|
inline |
Definition at line 377 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 232 of file SDPatternMatch.h.
References llvm::ISD::POISON.
|
inline |
Definition at line 1545 of file SDPatternMatch.h.
References llvm::ISD::ADD.
|
inline |
Definition at line 1557 of file SDPatternMatch.h.
References llvm::ISD::AND.
|
inline |
Definition at line 1563 of file SDPatternMatch.h.
References llvm::ISD::MUL.
|
inline |
Definition at line 1569 of file SDPatternMatch.h.
References llvm::ISD::ADD, and llvm::SDNodeFlags::NoSignedWrap.
|
inline |
Definition at line 1576 of file SDPatternMatch.h.
References llvm::ISD::ADD, and llvm::SDNodeFlags::NoUnsignedWrap.
|
inline |
Definition at line 1551 of file SDPatternMatch.h.
References llvm::ISD::OR.
|
inline |
Match only if the SDValue is a certain result at ResNo.
Definition at line 127 of file SDPatternMatch.h.
References P.
Referenced by m_Load().
Definition at line 946 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::ROTL.
Definition at line 951 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::ROTR.
|
inline |
Definition at line 445 of file SDPatternMatch.h.
References m_Value().
Definition at line 913 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SDIV.
|
inline |
Definition at line 568 of file SDPatternMatch.h.
References Cond, F, llvm::ISD::SELECT, and T.
Referenced by m_SelectCCLike(), and m_SelectLike().
|
inline |
Definition at line 616 of file SDPatternMatch.h.
References F, m_Node(), llvm::ISD::SELECT_CC, and T.
Referenced by m_SelectCCLike().
|
inline |
Definition at line 622 of file SDPatternMatch.h.
References F, m_AnyOf(), m_Select(), m_SelectCC(), m_SetCC(), and T.
|
inline |
Definition at line 579 of file SDPatternMatch.h.
References Cond, F, m_AnyOf(), m_Select(), m_VSelect(), and T.
Referenced by foldSelectWithIdentityConstant(), takeInexpensiveLog2(), and tryToFoldExtendSelectLoad().
|
inline |
Definition at line 555 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SETCC.
Referenced by combineAnd(), combineSelect(), combineShiftLeft(), combineShiftRightLogical(), commuteSelect(), foldAddSubBoolOfMaskedVal(), foldVSelectToSignBitSplatMask(), and m_SelectCCLike().
|
inline |
Definition at line 1064 of file SDPatternMatch.h.
References llvm::ISD::SIGN_EXTEND.
Referenced by m_SExtLike(), and m_SExtOrSelf().
|
inline |
Definition at line 1096 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 1092 of file SDPatternMatch.h.
Definition at line 927 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SHL.
|
inline |
Definition at line 986 of file SDPatternMatch.h.
References llvm::ISD::VECTOR_SHUFFLE.
|
inline |
Definition at line 992 of file SDPatternMatch.h.
References mask().
|
inline |
Definition at line 870 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SMAX.
Definition at line 875 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_MaxMinLike(), m_Negative(), m_NonNegative(), and RHS.
|
inline |
Definition at line 857 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SMIN.
Definition at line 862 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_MaxMinLike(), m_Negative(), m_NonNegative(), and RHS.
|
inline |
Definition at line 109 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 1430 of file SDPatternMatch.h.
Referenced by combineSelect(), combineShiftLeft(), combineShiftRightLogical(), foldAddSubBoolOfMaskedVal(), isTruncateOf(), and performAnyAllCombine().
|
inline |
Match a specific float constant.
Definition at line 1252 of file SDPatternMatch.h.
|
inline |
Definition at line 1254 of file SDPatternMatch.h.
|
inline |
Match a specific integer constant or constant splat value.
Definition at line 1229 of file SDPatternMatch.h.
Referenced by m_IntrinsicWOChain().
|
inline |
Definition at line 1232 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 1470 of file SDPatternMatch.h.
|
inline |
Definition at line 385 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 399 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a vector ValueType.
Definition at line 392 of file SDPatternMatch.h.
References P.
Referenced by combineBasicSADPattern().
|
inline |
Definition at line 372 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a specific ValueType.
Definition at line 369 of file SDPatternMatch.h.
References P.
Referenced by combineAdd(), combineAnd(), combineCastedMaskArithmetic(), combineOr(), combineOrAndToBitfieldInsert(), combineSCALAR_TO_VECTOR(), m_Glue(), m_OtherVT(), and performMINMAXCombine().
Definition at line 932 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SRA.
Referenced by foldAndToUsubsat().
Definition at line 922 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SREM.
Definition at line 936 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SRL.
Referenced by combineAdd(), combinePMULH(), and reverseZExtICmpCombine().
|
inline |
Definition at line 1337 of file SDPatternMatch.h.
Referenced by m_StrictlyPositive().
|
inline |
Definition at line 1340 of file SDPatternMatch.h.
References m_AllOf(), m_StrictlyPositive(), and P.
Definition at line 810 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SUB.
Referenced by m_Neg().
|
inline |
Definition at line 605 of file SDPatternMatch.h.
References Opc.
Referenced by combineXorWithGF2P8AFFINEQB(), and combineXorWithTwoGF2P8AFFINEQB().
|
inline |
Match true boolean value based on the information provided by TargetLowering.
Definition at line 1363 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 1072 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 1110 of file SDPatternMatch.h.
References m_Trunc().
Definition at line 909 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UDIV.
|
inline |
Definition at line 896 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UMAX.
Definition at line 901 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_MaxMinLike(), m_Negative(), m_NonNegative(), and RHS.
|
inline |
Definition at line 883 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UMIN.
Definition at line 888 of file SDPatternMatch.h.
References LHS, m_AnyOf(), m_MaxMinLike(), m_Negative(), m_NonNegative(), and RHS.
|
inline |
Definition at line 1032 of file SDPatternMatch.h.
References Opc.
Referenced by foldBitOrderCrossLogicOp().
|
inline |
Definition at line 228 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 210 of file SDPatternMatch.h.
References P.
Referenced by m_NoneOf().
Definition at line 918 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::UREM.
|
inline |
Match any valid SDValue.
Definition at line 107 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_Value(), and m_VectorVT().
|
inline |
Definition at line 280 of file SDPatternMatch.h.
|
inline |
Conditionally bind an SDValue based on the predicate.
Definition at line 285 of file SDPatternMatch.h.
|
inline |
Definition at line 428 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1114 of file SDPatternMatch.h.
References llvm::ISD::VSCALE.
|
inline |
Definition at line 574 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 347 of file SDPatternMatch.h.
|
inline |
Definition at line 841 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::XOR.
Referenced by m_BitwiseLogic(), and m_Not().
|
inline |
Definition at line 1354 of file SDPatternMatch.h.
|
inline |
Definition at line 1055 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 1086 of file SDPatternMatch.h.
|
nodiscard |
Definition at line 66 of file SDPatternMatch.h.
References N, P, sd_context_match(), and SDValue().
|
nodiscard |
Definition at line 60 of file SDPatternMatch.h.
Referenced by foldSubCtlzNot(), 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::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::ReassociatableOpc_match< PatternTs >::reassociatableMatchHelper(), sd_context_match(), sd_match(), and sd_match().
|
nodiscard |
Definition at line 72 of file SDPatternMatch.h.
References N, P, and sd_context_match().
Referenced by combineAdd(), combineAnd(), combineAndNotOrIntoAndNotAnd(), combineAndXorSubWithBMI(), combineBasicSADPattern(), combineCastedMaskArithmetic(), combineLogicBlendIntoConditionalNegate(), combineNarrowableShiftedLoad(), combineOr(), combineOrAndToBitfieldInsert(), combineOrToBitfieldInsert(), combinePMULH(), combineSCALAR_TO_VECTOR(), combineSelect(), combineSetCC(), combineShiftLeft(), combineShiftRightArithmetic(), combineShiftRightLogical(), combineShiftToPMULH(), combineShlAddIAddImpl(), combineTargetShuffle(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), commuteSelect(), detectPMADDUBSW(), detectSSatPattern(), detectSSatSPattern(), detectSSatUPattern(), detectUSatPattern(), detectUSatUPattern(), expandMulToAddOrSubOfShl(), foldAddSubBoolOfMaskedVal(), foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldReduceOperandViaVDOTA4(), foldSelectWithIdentityConstant(), foldToMaskedStore(), foldVSelectToSignBitSplatMask(), getShlAddShlAdd(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isTruncateOf(), m_False(), m_True(), matchLogicBlend(), matchPMADDWD(), matchPMADDWD_2(), matchVPMADD52(), narrowBitOpRMW(), performAddTruncShiftCombine(), performANDORDUPNOTCombine(), performAnyAllCombine(), performBitcastCombine(), performCTPOPCombine(), llvm::RISCVTargetLowering::PerformDAGCombine(), performLastTrueTestVectorCombine(), performMINMAXCombine(), reverseZExtICmpCombine(), sd_match(), sd_match(), llvm::X86TargetLowering::shouldFoldSelectWithIdentityConstant(), llvm::TargetLowering::SimplifyDemandedBits(), takeInexpensiveLog2(), tryToFoldExtendSelectLoad(), and visitORCommutative().
|
nodiscard |
Definition at line 82 of file SDPatternMatch.h.
References N, P, and sd_match().
|
nodiscard |
Definition at line 77 of file SDPatternMatch.h.
References N, P, and sd_context_match().
|
nodiscard |
Definition at line 87 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.