|
LLVM 23.0.0git
|
Contains matchers for matching SelectionDAG nodes and values. More...
#include "llvm/ADT/APInt.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/ADT/bit.h"#include "llvm/CodeGen/SelectionDAG.h"#include "llvm/CodeGen/SelectionDAGNodes.h"#include "llvm/CodeGen/TargetLowering.h"#include "llvm/Support/KnownBits.h"#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
| namespace | llvm::SDPatternMatch |
Functions | |
| template<typename Pattern, typename MatchContext> | |
| bool | llvm::SDPatternMatch::sd_context_match (SDValue N, const MatchContext &Ctx, Pattern &&P) |
| template<typename Pattern, typename MatchContext> | |
| bool | llvm::SDPatternMatch::sd_context_match (SDNode *N, const MatchContext &Ctx, Pattern &&P) |
| template<typename Pattern> | |
| bool | llvm::SDPatternMatch::sd_match (SDNode *N, const SelectionDAG *DAG, Pattern &&P) |
| template<typename Pattern> | |
| bool | llvm::SDPatternMatch::sd_match (SDValue N, const SelectionDAG *DAG, Pattern &&P) |
| template<typename Pattern> | |
| bool | llvm::SDPatternMatch::sd_match (SDNode *N, Pattern &&P) |
| template<typename Pattern> | |
| bool | llvm::SDPatternMatch::sd_match (SDValue N, Pattern &&P) |
| Value_match | llvm::SDPatternMatch::m_Value () |
| Match any valid SDValue. | |
| Value_match | llvm::SDPatternMatch::m_Specific (SDValue N) |
| template<unsigned ResNo, typename Pattern> | |
| Result_match< ResNo, Pattern > | llvm::SDPatternMatch::m_Result (const Pattern &P) |
| Match only if the SDValue is a certain result at ResNo. | |
| DeferredValue_match | llvm::SDPatternMatch::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> | |
| llvm::SDPatternMatch::Not (const Pred &P) -> Not< Pred > | |
| template<typename Pred> | |
| Not< Pred > | llvm::SDPatternMatch::m_Unless (const Pred &P) |
| Match if the inner pattern does NOT match. | |
| template<typename... Preds> | |
| And< Preds... > | llvm::SDPatternMatch::m_AllOf (const Preds &...preds) |
| template<typename... Preds> | |
| Or< Preds... > | llvm::SDPatternMatch::m_AnyOf (const Preds &...preds) |
| template<typename... Preds> | |
| auto | llvm::SDPatternMatch::m_NoneOf (const Preds &...preds) |
| Opcode_match | llvm::SDPatternMatch::m_SpecificOpc (unsigned Opcode) |
| auto | llvm::SDPatternMatch::m_Undef () |
| Opcode_match | llvm::SDPatternMatch::m_Poison () |
| template<typename Pattern> | |
| NUses_match< 1, Pattern > | llvm::SDPatternMatch::m_OneUse (const Pattern &P) |
| template<unsigned N, typename Pattern> | |
| NUses_match< N, Pattern > | llvm::SDPatternMatch::m_NUses (const Pattern &P) |
| NUses_match< 1, Value_match > | llvm::SDPatternMatch::m_OneUse () |
| template<unsigned N> | |
| NUses_match< N, Value_match > | llvm::SDPatternMatch::m_NUses () |
| auto | llvm::SDPatternMatch::m_Value (SDValue &N) |
| template<typename PredPattern> | |
| auto | llvm::SDPatternMatch::m_Value (SDValue &N, const PredPattern &P) |
| Conditionally bind an SDValue based on the predicate. | |
| template<typename PredFuncT, typename Pattern> | |
| llvm::SDPatternMatch::TLI_pred_match (const PredFuncT &Pred, const Pattern &P) -> TLI_pred_match< Pattern, PredFuncT > | |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_LegalOp (const Pattern &P) |
| Match legal SDNodes based on the information provided by TargetLowering. | |
| template<typename MatchContext, typename Pattern> | |
| SwitchContext< MatchContext, Pattern > | llvm::SDPatternMatch::m_Context (const MatchContext &Ctx, Pattern &&P) |
| template<typename Pattern> | |
| llvm::SDPatternMatch::ValueType_bind (const Pattern &P) -> ValueType_bind< Pattern > | |
| auto | llvm::SDPatternMatch::m_VT (EVT &VT) |
| Retreive the ValueType of the current SDValue. | |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_VT (EVT &VT, const Pattern &P) |
| template<typename PredFuncT, typename Pattern> | |
| llvm::SDPatternMatch::ValueType_match (const PredFuncT &Pred, const Pattern &P) -> ValueType_match< Pattern, PredFuncT > | |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_SpecificVT (EVT RefVT, const Pattern &P) |
| Match a specific ValueType. | |
| auto | llvm::SDPatternMatch::m_SpecificVT (EVT RefVT) |
| auto | llvm::SDPatternMatch::m_Glue () |
| auto | llvm::SDPatternMatch::m_OtherVT () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_SpecificScalarVT (EVT RefVT, const Pattern &P) |
| Match a scalar ValueType. | |
| auto | llvm::SDPatternMatch::m_SpecificScalarVT (EVT RefVT) |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_SpecificVectorElementVT (EVT RefVT, const Pattern &P) |
| Match a vector ValueType. | |
| auto | llvm::SDPatternMatch::m_SpecificVectorElementVT (EVT RefVT) |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_IntegerVT (const Pattern &P) |
| Match any integer ValueTypes. | |
| auto | llvm::SDPatternMatch::m_IntegerVT () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_FloatingPointVT (const Pattern &P) |
| Match any floating point ValueTypes. | |
| auto | llvm::SDPatternMatch::m_FloatingPointVT () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_VectorVT (const Pattern &P) |
| Match any vector ValueTypes. | |
| auto | llvm::SDPatternMatch::m_VectorVT () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_FixedVectorVT (const Pattern &P) |
| Match fixed-length vector ValueTypes. | |
| auto | llvm::SDPatternMatch::m_FixedVectorVT () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_ScalableVectorVT (const Pattern &P) |
| Match scalable vector ValueTypes. | |
| auto | llvm::SDPatternMatch::m_ScalableVectorVT () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_LegalType (const Pattern &P) |
| Match legal ValueTypes based on the information provided by TargetLowering. | |
| template<typename... OpndPreds> | |
| auto | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 | llvm::SDPatternMatch::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 > > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 | llvm::SDPatternMatch::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 | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::m_BinOp (unsigned Opc, const LHS &L, const RHS &R, SDNodeFlags Flgs=SDNodeFlags()) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_c_BinOp (unsigned Opc, const LHS &L, const RHS &R, SDNodeFlags Flgs=SDNodeFlags()) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, false, true > | llvm::SDPatternMatch::m_ChainedBinOp (unsigned Opc, const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true, true > | llvm::SDPatternMatch::m_c_ChainedBinOp (unsigned Opc, const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_Add (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_Sub (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_Mul (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_And (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_Or (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_DisjointOr (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_AddLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_Xor (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_BitwiseLogic (const LHS &L, const RHS &R) |
| template<unsigned Opc, typename Pred, typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_MaxMinLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_SMin (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_SMinLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_SMax (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_SMaxLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_UMin (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_UMinLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_UMax (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_UMaxLike (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_UDiv (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_SDiv (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_URem (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_SRem (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_Shl (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_Sra (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_Srl (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | llvm::SDPatternMatch::m_ExactSr (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_Rotl (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::m_FShRLike (const T0_P &Op0, const T1_P &Op1, const T2_P &Op2) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_Clmul (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_FAdd (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_FSub (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS, true > | llvm::SDPatternMatch::m_FMul (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_FDiv (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_FRem (const LHS &L, const RHS &R) |
| template<typename V1_t, typename V2_t> | |
| BinaryOpc_match< V1_t, V2_t > | llvm::SDPatternMatch::m_Shuffle (const V1_t &v1, const V2_t &v2) |
| template<typename V1_t, typename V2_t, typename Mask_t> | |
| SDShuffle_match< V1_t, V2_t, Mask_t > | llvm::SDPatternMatch::m_Shuffle (const V1_t &v1, const V2_t &v2, const Mask_t &mask) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_ExtractElt (const LHS &Vec, const RHS &Idx) |
| template<typename LHS, typename RHS> | |
| BinaryOpc_match< LHS, RHS > | llvm::SDPatternMatch::m_ExtractSubvector (const LHS &Vec, const RHS &Idx) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_UnaryOp (unsigned Opc, const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd, true > | llvm::SDPatternMatch::m_ChainedUnaryOp (unsigned Opc, const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_BitCast (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_BSwap (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_BitReverse (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_ZExt (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_NNegZExt (const Opnd &Op) |
| template<typename Opnd> | |
| auto | llvm::SDPatternMatch::m_SExt (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_AnyExt (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_Trunc (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_Abs (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_FAbs (const Opnd &Op) |
| template<typename Opnd> | |
| auto | llvm::SDPatternMatch::m_ZExtOrSelf (const Opnd &Op) |
| Match a zext or identity Allows to peek through optional extensions. | |
| template<typename Opnd> | |
| auto | llvm::SDPatternMatch::m_SExtOrSelf (const Opnd &Op) |
| Match a sext or identity Allows to peek through optional extensions. | |
| template<typename Opnd> | |
| auto | llvm::SDPatternMatch::m_SExtLike (const Opnd &Op) |
| template<typename Opnd> | |
| Or< UnaryOpc_match< Opnd >, Opnd > | llvm::SDPatternMatch::m_AExtOrSelf (const Opnd &Op) |
| Match a aext or identity Allows to peek through optional extensions. | |
| template<typename Opnd> | |
| Or< UnaryOpc_match< Opnd >, Opnd > | llvm::SDPatternMatch::m_TruncOrSelf (const Opnd &Op) |
| Match a trunc or identity Allows to peek through optional truncations. | |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_VScale (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_FPToUI (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_FPToSI (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_Ctpop (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_Ctlz (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_Cttz (const Opnd &Op) |
| template<typename Opnd> | |
| UnaryOpc_match< Opnd > | llvm::SDPatternMatch::m_FNeg (const Opnd &Op) |
| ConstantInt_match | llvm::SDPatternMatch::m_ConstInt () |
| Match any integer constants or splat of an integer constant. | |
| ConstantInt_match | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 > | llvm::SDPatternMatch::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 | llvm::SDPatternMatch::m_SpecificInt (APInt V) |
| Match a specific integer constant or constant splat value. | |
| SpecificInt_match | llvm::SDPatternMatch::m_SpecificInt (uint64_t V) |
| SpecificFP_match | llvm::SDPatternMatch::m_SpecificFP (APFloat V) |
| Match a specific float constant. | |
| SpecificFP_match | llvm::SDPatternMatch::m_SpecificFP (double V) |
| Negative_match | llvm::SDPatternMatch::m_Negative () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_Negative (const Pattern &P) |
| NonNegative_match | llvm::SDPatternMatch::m_NonNegative () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_NonNegative (const Pattern &P) |
| StrictlyPositive_match | llvm::SDPatternMatch::m_StrictlyPositive () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_StrictlyPositive (const Pattern &P) |
| NonPositive_match | llvm::SDPatternMatch::m_NonPositive () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_NonPositive (const Pattern &P) |
| NonZero_match | llvm::SDPatternMatch::m_NonZero () |
| template<typename Pattern> | |
| auto | llvm::SDPatternMatch::m_NonZero (const Pattern &P) |
| Ones_match | llvm::SDPatternMatch::m_One (bool AllowUndefs=false) |
| Zero_match | llvm::SDPatternMatch::m_Zero (bool AllowUndefs=false) |
| AllOnes_match | llvm::SDPatternMatch::m_AllOnes (bool AllowUndefs=false) |
| auto | llvm::SDPatternMatch::m_True () |
| Match true boolean value based on the information provided by TargetLowering. | |
| auto | llvm::SDPatternMatch::m_False () |
| Match false boolean value based on the information provided by TargetLowering. | |
| CondCode_match | llvm::SDPatternMatch::m_CondCode () |
| Match any conditional code SDNode. | |
| CondCode_match | llvm::SDPatternMatch::m_CondCode (ISD::CondCode &CC) |
| Match any conditional code SDNode and return its ISD::CondCode value. | |
| CondCode_match | llvm::SDPatternMatch::m_SpecificCondCode (ISD::CondCode CC) |
| Match a conditional code SDNode with a specific ISD::CondCode. | |
| template<typename ValTy> | |
| BinaryOpc_match< Zero_match, ValTy, false > | llvm::SDPatternMatch::m_Neg (const ValTy &V) |
| Match a negate as a sub(0, v) | |
| template<typename ValTy> | |
| BinaryOpc_match< ValTy, AllOnes_match, true > | llvm::SDPatternMatch::m_Not (const ValTy &V) |
| Match a Not as a xor(v, -1) or xor(-1, v) | |
| template<unsigned IntrinsicId, typename... OpndPreds> | |
| auto | llvm::SDPatternMatch::m_IntrinsicWOChain (const OpndPreds &...Opnds) |
| SpecificNeg_match | llvm::SDPatternMatch::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... > | llvm::SDPatternMatch::m_ReassociatableAdd (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | llvm::SDPatternMatch::m_ReassociatableOr (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | llvm::SDPatternMatch::m_ReassociatableAnd (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | llvm::SDPatternMatch::m_ReassociatableMul (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | llvm::SDPatternMatch::m_ReassociatableNSWAdd (const PatternTs &...Patterns) |
| template<typename... PatternTs> | |
| ReassociatableOpc_match< PatternTs... > | llvm::SDPatternMatch::m_ReassociatableNUWAdd (const PatternTs &...Patterns) |
Contains matchers for matching SelectionDAG nodes and values.
Definition in file SDPatternMatch.h.