LLVM 22.0.0git
|
Classes | |
struct | AllOnes_match |
struct | And |
struct | And< Pred, Preds... > |
class | BasicMatchContext |
MatchContext can repurpose existing patterns to behave differently under a certain context. More... | |
struct | BinaryOpc_match |
struct | CondCode_match |
struct | ConstantInt_match |
struct | DeferredValue_match |
struct | EffectiveOperands |
Provide number of operands that are not chain or glue, as well as the first index of such operand. More... | |
struct | EffectiveOperands< false > |
struct | m_Mask |
struct | m_SpecificMask |
struct | MaxMin_match |
struct | Not |
struct | NUses_match |
struct | Ones_match |
struct | Opcode_match |
struct | Operands_match |
struct | Operands_match< OpIdx, OpndPred, OpndPreds... > |
struct | Or |
struct | Or< Pred, Preds... > |
struct | ReassociatableOpc_match |
struct | Result_match |
struct | SDShuffle_match |
Matching while capturing mask. More... | |
struct | smax_pred_ty |
struct | smin_pred_ty |
struct | SpecificInt_match |
struct | SwitchContext |
Switch to a different MatchContext for subsequent patterns. More... | |
struct | TernaryOpc_match |
struct | TLI_pred_match |
struct | umax_pred_ty |
struct | umin_pred_ty |
struct | UnaryOpc_match |
struct | Value_bind |
struct | Value_match |
struct | ValueType_bind |
struct | ValueType_match |
struct | Zero_match |
Functions | |
template<typename Pattern , 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. | |
Opcode_match | m_Opc (unsigned Opcode) |
Opcode_match | 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 () |
Value_bind | m_Value (SDValue &N) |
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 Pred > | |
Not (const Pred &P) -> Not< Pred > | |
template<typename Pred > | |
Not< Pred > | m_Unless (const Pred &P) |
Match if the inner pattern does NOT match. | |
template<typename... Preds> | |
And< Preds... > | m_AllOf (const Preds &...preds) |
template<typename... Preds> | |
Or< Preds... > | m_AnyOf (const Preds &...preds) |
template<typename... Preds> | |
auto | m_NoneOf (const Preds &...preds) |
template<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 > | |
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 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) |
template<typename LHS , typename RHS > | |
BinaryOpc_match< LHS, RHS, true > | m_c_BinOp (unsigned Opc, const LHS &L, const RHS &R) |
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<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 > | |
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_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 > | |
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) |
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. | |
SpecificInt_match | m_SpecificInt (APInt V) |
Match a specific integer constant or constant splat value. | |
SpecificInt_match | m_SpecificInt (uint64_t V) |
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<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) |
|
inline |
Definition at line 1021 of file SDPatternMatch.h.
References llvm::ISD::ABS.
|
inline |
Definition at line 772 of file SDPatternMatch.h.
References llvm::ISD::ADD.
Referenced by m_AddLike().
Definition at line 803 of file SDPatternMatch.h.
References m_Add(), m_AnyOf(), and m_DisjointOr().
|
inline |
Match a aext or identity Allows to peek through optional extensions.
Definition at line 1044 of file SDPatternMatch.h.
References m_AnyExt().
Definition at line 429 of file SDPatternMatch.h.
Referenced by m_Node().
|
inline |
Definition at line 1166 of file SDPatternMatch.h.
|
inline |
Definition at line 787 of file SDPatternMatch.h.
References llvm::ISD::AND.
Referenced by m_BitwiseLogic().
|
inline |
Definition at line 1013 of file SDPatternMatch.h.
References llvm::ISD::ANY_EXTEND.
Referenced by m_AExtOrSelf(), and visitORCommutative().
Definition at line 433 of file SDPatternMatch.h.
Referenced by m_AddLike(), m_BitwiseLogic(), m_NoneOf(), m_SelectCCLike(), m_SExtLike(), m_SExtOrSelf(), m_SMaxLike(), m_SMinLike(), m_UMaxLike(), m_UMinLike(), and m_ZExtOrSelf().
|
inline |
Definition at line 749 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 986 of file SDPatternMatch.h.
References llvm::ISD::BITCAST.
|
inline |
Definition at line 996 of file SDPatternMatch.h.
References llvm::ISD::BITREVERSE.
|
inline |
Definition at line 991 of file SDPatternMatch.h.
References llvm::ISD::BSWAP.
|
inline |
Definition at line 754 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 766 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 544 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SETCC.
Referenced by isTruncateOf().
|
inline |
Definition at line 761 of file SDPatternMatch.h.
References Opc.
|
inline |
Definition at line 981 of file SDPatternMatch.h.
References Opc.
|
inline |
Match any conditional code SDNode.
Definition at line 1233 of file SDPatternMatch.h.
Referenced by foldVSelectToSignBitSplatMask().
|
inline |
Match any conditional code SDNode and return its ISD::CondCode value.
Definition at line 1235 of file SDPatternMatch.h.
|
inline |
Match any integer constants or splat of an integer constant.
Definition at line 1102 of file SDPatternMatch.h.
Referenced by foldSubCtlzNot(), m_False(), m_True(), and llvm::SDPatternMatch::SpecificInt_match::match().
|
inline |
Match any integer constants or splat of an integer constant; return the specific constant or constant splat value.
Definition at line 1105 of file SDPatternMatch.h.
|
inline |
Definition at line 247 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 1071 of file SDPatternMatch.h.
References llvm::ISD::CTLZ.
Referenced by foldSubCtlzNot().
|
inline |
Definition at line 1067 of file SDPatternMatch.h.
References llvm::ISD::CTPOP.
|
inline |
Definition at line 1075 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 143 of file SDPatternMatch.h.
|
inline |
Definition at line 797 of file SDPatternMatch.h.
References llvm::SDNodeFlags::Disjoint, and llvm::ISD::OR.
Referenced by m_AddLike().
|
inline |
Definition at line 940 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_VECTOR_ELT, and Idx.
|
inline |
Definition at line 945 of file SDPatternMatch.h.
References llvm::ISD::EXTRACT_SUBVECTOR, and Idx.
|
inline |
Definition at line 904 of file SDPatternMatch.h.
References llvm::ISD::FADD.
|
inline |
Match false boolean value based on the information provided by TargetLowering.
Definition at line 1192 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 919 of file SDPatternMatch.h.
References llvm::ISD::FDIV.
|
inline |
Definition at line 354 of file SDPatternMatch.h.
References m_Value().
Match fixed-length vector ValueTypes.
Definition at line 351 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 337 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 914 of file SDPatternMatch.h.
References llvm::ISD::FMUL.
|
inline |
Definition at line 1063 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_SINT.
|
inline |
Definition at line 1059 of file SDPatternMatch.h.
References llvm::ISD::FP_TO_UINT.
Definition at line 924 of file SDPatternMatch.h.
References llvm::ISD::FREM.
Definition at line 909 of file SDPatternMatch.h.
References llvm::ISD::FSUB.
|
inline |
Definition at line 294 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 570 of file SDPatternMatch.h.
References Idx, and llvm::ISD::INSERT_VECTOR_ELT.
|
inline |
Definition at line 577 of file SDPatternMatch.h.
References llvm::sampleprof::Base, Idx, llvm::ISD::INSERT_SUBVECTOR, and llvm::Sub.
|
inline |
Definition at line 329 of file SDPatternMatch.h.
References m_Value().
Match legal SDNodes based on the information provided by TargetLowering.
Definition at line 227 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::isOperationLegal(), N, and P.
Match legal ValueTypes based on the information provided by TargetLowering.
Definition at line 369 of file SDPatternMatch.h.
References llvm::TargetLoweringBase::isTypeLegal(), N, and P.
|
inline |
Definition at line 563 of file SDPatternMatch.h.
References llvm::ISD::LOAD, llvm::Offset, and Ptr.
|
inline |
Definition at line 782 of file SDPatternMatch.h.
References llvm::ISD::MUL.
|
inline |
Match a negate as a sub(0, v)
Definition at line 1245 of file SDPatternMatch.h.
References m_Sub(), and llvm::PatternMatch::m_Zero().
|
inline |
Definition at line 1005 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 471 of file SDPatternMatch.h.
References m_AllOf(), and m_Opc().
Referenced by m_SelectCC().
auto llvm::SDPatternMatch::m_NoneOf | ( | const Preds &... | preds | ) |
Definition at line 437 of file SDPatternMatch.h.
References m_AnyOf(), and m_Unless().
|
inline |
Match a Not as a xor(v, -1) or xor(-1, v)
Definition at line 1251 of file SDPatternMatch.h.
References llvm::PatternMatch::m_AllOnes(), and m_Xor().
|
inline |
Definition at line 190 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 183 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 1160 of file SDPatternMatch.h.
|
inline |
Definition at line 187 of file SDPatternMatch.h.
References m_Value().
Referenced by foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldVSelectToSignBitSplatMask(), and visitORCommutative().
|
inline |
Definition at line 179 of file SDPatternMatch.h.
References P.
|
inline |
Definition at line 158 of file SDPatternMatch.h.
Referenced by m_Node(), llvm::SDPatternMatch::TernaryOpc_match< T0_P, T1_P, T2_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable, ExcludeChain >::match(), llvm::SDPatternMatch::MaxMin_match< LHS_P, RHS_P, Pred_t, Commutable, ExcludeChain >::match(), and llvm::SDPatternMatch::UnaryOpc_match< Opnd_P, ExcludeChain >::match().
|
inline |
Definition at line 792 of file SDPatternMatch.h.
References llvm::ISD::OR.
Referenced by m_BitwiseLogic().
|
inline |
Definition at line 295 of file SDPatternMatch.h.
References m_SpecificVT().
|
inline |
Definition at line 162 of file SDPatternMatch.h.
References llvm::ISD::POISON.
|
inline |
Definition at line 1314 of file SDPatternMatch.h.
References llvm::ISD::ADD.
|
inline |
Definition at line 1326 of file SDPatternMatch.h.
References llvm::ISD::AND.
|
inline |
Definition at line 1332 of file SDPatternMatch.h.
References llvm::ISD::MUL.
|
inline |
Definition at line 1320 of file SDPatternMatch.h.
References llvm::ISD::OR.
|
inline |
Match only if the SDValue is a certain result at ResNo.
Definition at line 124 of file SDPatternMatch.h.
References P.
Definition at line 894 of file SDPatternMatch.h.
References llvm::ISD::ROTL.
Definition at line 899 of file SDPatternMatch.h.
References llvm::ISD::ROTR.
|
inline |
Definition at line 363 of file SDPatternMatch.h.
References m_Value().
Definition at line 866 of file SDPatternMatch.h.
References llvm::ISD::SDIV.
|
inline |
Definition at line 551 of file SDPatternMatch.h.
References Cond, F, and llvm::ISD::SELECT.
Referenced by m_SelectCCLike().
|
inline |
Definition at line 582 of file SDPatternMatch.h.
References F, m_Node(), and llvm::ISD::SELECT_CC.
Referenced by m_SelectCCLike().
|
inline |
Definition at line 588 of file SDPatternMatch.h.
References F, m_AnyOf(), m_Select(), m_SelectCC(), and m_SetCC().
|
inline |
Definition at line 538 of file SDPatternMatch.h.
References LHS, RHS, and llvm::ISD::SETCC.
Referenced by foldAddSubBoolOfMaskedVal(), foldVSelectToSignBitSplatMask(), and m_SelectCCLike().
|
inline |
Definition at line 1009 of file SDPatternMatch.h.
References llvm::ISD::SIGN_EXTEND.
Referenced by m_SExtLike(), and m_SExtOrSelf().
|
inline |
Definition at line 1037 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 1033 of file SDPatternMatch.h.
Definition at line 880 of file SDPatternMatch.h.
References llvm::ISD::SHL.
|
inline |
Definition at line 929 of file SDPatternMatch.h.
References llvm::ISD::VECTOR_SHUFFLE.
|
inline |
Definition at line 935 of file SDPatternMatch.h.
|
inline |
Definition at line 829 of file SDPatternMatch.h.
References llvm::ISD::SMAX.
Definition at line 834 of file SDPatternMatch.h.
References m_AnyOf(), and llvm::ISD::SMAX.
|
inline |
Definition at line 818 of file SDPatternMatch.h.
References llvm::ISD::SMIN.
Definition at line 823 of file SDPatternMatch.h.
References m_AnyOf(), and llvm::ISD::SMIN.
|
inline |
Definition at line 106 of file SDPatternMatch.h.
|
inline |
Match a conditional code SDNode with a specific ISD::CondCode.
Definition at line 1239 of file SDPatternMatch.h.
Referenced by foldAddSubBoolOfMaskedVal(), and isTruncateOf().
|
inline |
Match a specific integer constant or constant splat value.
Definition at line 1122 of file SDPatternMatch.h.
|
inline |
Definition at line 1125 of file SDPatternMatch.h.
|
inline |
Definition at line 303 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 317 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 290 of file SDPatternMatch.h.
References m_Value().
|
inline |
Match a specific ValueType.
Definition at line 287 of file SDPatternMatch.h.
References P.
Referenced by m_Glue(), and m_OtherVT().
Definition at line 885 of file SDPatternMatch.h.
References llvm::ISD::SRA.
Referenced by foldAndToUsubsat().
Definition at line 875 of file SDPatternMatch.h.
References llvm::ISD::SREM.
Definition at line 889 of file SDPatternMatch.h.
References llvm::ISD::SRL.
|
inline |
Match true boolean value based on the information provided by TargetLowering.
Definition at line 1172 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 1017 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 1051 of file SDPatternMatch.h.
References m_Trunc().
Definition at line 862 of file SDPatternMatch.h.
References llvm::ISD::UDIV.
|
inline |
Definition at line 851 of file SDPatternMatch.h.
References llvm::ISD::UMAX.
Definition at line 856 of file SDPatternMatch.h.
References m_AnyOf(), and llvm::ISD::UMAX.
|
inline |
Definition at line 840 of file SDPatternMatch.h.
References llvm::ISD::UMIN.
Definition at line 845 of file SDPatternMatch.h.
References m_AnyOf(), and llvm::ISD::UMIN.
|
inline |
Definition at line 977 of file SDPatternMatch.h.
References Opc.
Referenced by foldBitOrderCrossLogicOp().
|
inline |
Definition at line 160 of file SDPatternMatch.h.
References llvm::ISD::UNDEF.
Match if the inner pattern does NOT match.
Definition at line 425 of file SDPatternMatch.h.
References P.
Referenced by m_NoneOf().
Definition at line 871 of file SDPatternMatch.h.
References llvm::ISD::UREM.
|
inline |
Match any valid SDValue.
Definition at line 104 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(), and m_VectorVT().
|
inline |
Definition at line 205 of file SDPatternMatch.h.
References N.
|
inline |
Definition at line 346 of file SDPatternMatch.h.
References m_Value().
|
inline |
Definition at line 1055 of file SDPatternMatch.h.
References llvm::ISD::VSCALE.
|
inline |
Definition at line 557 of file SDPatternMatch.h.
References Cond, F, and llvm::ISD::VSELECT.
Referenced by foldToMaskedStore().
|
inline |
Retreive the ValueType of the current SDValue.
Definition at line 265 of file SDPatternMatch.h.
|
inline |
Definition at line 808 of file SDPatternMatch.h.
References llvm::ISD::XOR.
Referenced by m_BitwiseLogic(), and m_Not().
|
inline |
Definition at line 1163 of file SDPatternMatch.h.
|
inline |
Definition at line 1000 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 1027 of file SDPatternMatch.h.
llvm::SDPatternMatch::Not | ( | const Pred & | P | ) | -> Not< Pred > |
bool llvm::SDPatternMatch::sd_context_match | ( | SDNode * | N, |
const MatchContext & | Ctx, | ||
Pattern && | P | ||
) |
Definition at line 63 of file SDPatternMatch.h.
References N, P, and sd_context_match().
bool llvm::SDPatternMatch::sd_context_match | ( | SDValue | N, |
const MatchContext & | Ctx, | ||
Pattern && | P | ||
) |
Definition at line 57 of file SDPatternMatch.h.
Referenced by foldSubCtlzNot(), llvm::SDPatternMatch::TernaryOpc_match< T0_P, T1_P, T2_P, Commutable, ExcludeChain >::match(), 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::UnaryOpc_match< Opnd_P, ExcludeChain >::match(), llvm::SDPatternMatch::SpecificInt_match::match(), llvm::SDPatternMatch::ReassociatableOpc_match< PatternTs >::match(), sd_context_match(), and sd_match().
bool llvm::SDPatternMatch::sd_match | ( | SDNode * | N, |
const SelectionDAG * | DAG, | ||
Pattern && | P | ||
) |
Definition at line 69 of file SDPatternMatch.h.
References N, P, and sd_context_match().
Referenced by detectSSatSPattern(), detectSSatUPattern(), detectUSatUPattern(), foldAddSubBoolOfMaskedVal(), foldAndToUsubsat(), foldBitOrderCrossLogicOp(), foldMaskedMerge(), foldToMaskedStore(), foldVSelectToSignBitSplatMask(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isTruncateOf(), m_False(), m_True(), sd_match(), and visitORCommutative().
Definition at line 79 of file SDPatternMatch.h.
References N, P, and sd_match().
bool llvm::SDPatternMatch::sd_match | ( | SDValue | N, |
const SelectionDAG * | DAG, | ||
Pattern && | P | ||
) |
Definition at line 74 of file SDPatternMatch.h.
References N, P, and sd_context_match().
Definition at line 84 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 > |
llvm::SDPatternMatch::ValueType_match | ( | const PredFuncT & | Pred, |
const Pattern & | P | ||
) | -> ValueType_match< Pattern, PredFuncT > |