LLVM  14.0.0git
Classes | Functions
llvm::MIPatternMatch Namespace Reference

Classes

struct  And
 Matching combinators. More...
 
struct  And< Pred, Preds... >
 
struct  BinaryOp_match
 
struct  BinaryOpc_match
 
struct  bind_helper
 
struct  bind_helper< const ConstantFP * >
 
struct  bind_helper< LLT >
 
struct  bind_helper< MachineInstr * >
 
struct  bind_ty
 
struct  CheckType
 
struct  CompareOp_match
 
struct  ConstantMatch
 
struct  GCstAndRegMatch
 
struct  GFCstAndRegMatch
 
struct  GFCstOrSplatGFCstMatch
 
struct  OneNonDBGUse_match
 
struct  OneUse_match
 
struct  operand_type_match
 } More...
 
struct  Or
 
struct  Or< Pred, Preds... >
 
struct  SpecificConstantMatch
 Matcher for a specific constant value. More...
 
struct  SpecificConstantOrSplatMatch
 Matcher for a specific constant or constant splat. More...
 
struct  SpecificConstantSplatMatch
 Matcher for a specific constant splat. More...
 
struct  TernaryOp_match
 
struct  UnaryOp_match
 

Functions

template<typename Reg , typename Pattern >
bool mi_match (Reg R, const MachineRegisterInfo &MRI, Pattern &&P)
 
template<typename Pattern >
bool mi_match (MachineInstr &MI, const MachineRegisterInfo &MRI, Pattern &&P)
 
template<typename SubPat >
OneUse_match< SubPat > m_OneUse (const SubPat &SP)
 
template<typename SubPat >
OneNonDBGUse_match< SubPat > m_OneNonDBGUse (const SubPat &SP)
 
ConstantMatch m_ICst (int64_t &Cst)
 
GCstAndRegMatch m_GCst (Optional< ValueAndVReg > &ValReg)
 
GFCstAndRegMatch m_GFCst (Optional< FPValueAndVReg > &FPValReg)
 
GFCstOrSplatGFCstMatch m_GFCstOrSplat (Optional< FPValueAndVReg > &FPValReg)
 
SpecificConstantMatch m_SpecificICst (int64_t RequestedValue)
 Matches a constant equal to RequestedValue. More...
 
SpecificConstantSplatMatch m_SpecificICstSplat (int64_t RequestedValue)
 Matches a constant splat of RequestedValue. More...
 
SpecificConstantOrSplatMatch m_SpecificICstOrSplat (int64_t RequestedValue)
 Matches a RequestedValue constant or a constant splat of RequestedValue. More...
 
SpecificConstantMatch m_ZeroInt ()
 { Convenience matchers for specific integer values. More...
 
SpecificConstantMatch m_AllOnesInt ()
 
operand_type_match m_Reg ()
 
template<typename... Preds>
And< Preds... > m_all_of (Preds &&... preds)
 
template<typename... Preds>
Or< Preds... > m_any_of (Preds &&... preds)
 
bind_ty< Registerm_Reg (Register &R)
 
bind_ty< MachineInstr * > m_MInstr (MachineInstr *&MI)
 
bind_ty< LLTm_Type (LLT Ty)
 
bind_ty< CmpInst::Predicatem_Pred (CmpInst::Predicate &P)
 
operand_type_match m_Pred ()
 
bind_ty< const ConstantFP * > m_GFCst (const ConstantFP *&C)
 
template<typename LHS , typename RHS >
BinaryOpc_match< LHS, RHS, falsem_BinOp (unsigned Opcode, const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOpc_match< LHS, RHS, truem_CommutativeBinOp (unsigned Opcode, const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_ADD, truem_GAdd (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_PTR_ADD, truem_GPtrAdd (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_SUB > m_GSub (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_MUL, truem_GMul (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_FADD, truem_GFAdd (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_FMUL, truem_GFMul (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_FSUB, falsem_GFSub (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_AND, truem_GAnd (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_XOR, truem_GXor (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_OR, truem_GOr (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_SHL, falsem_GShl (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_LSHR, falsem_GLShr (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_ASHR, falsem_GAShr (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_SMAX, falsem_GSMax (const LHS &L, const RHS &R)
 
template<typename LHS , typename RHS >
BinaryOp_match< LHS, RHS, TargetOpcode::G_SMIN, falsem_GSMin (const LHS &L, const RHS &R)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_ANYEXT > m_GAnyExt (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_SEXT > m_GSExt (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_ZEXT > m_GZExt (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_FPEXT > m_GFPExt (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_TRUNC > m_GTrunc (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_BITCAST > m_GBitcast (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_PTRTOINT > m_GPtrToInt (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_INTTOPTR > m_GIntToPtr (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_FPTRUNC > m_GFPTrunc (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_FABS > m_GFabs (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_FNEG > m_GFNeg (const SrcTy &Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::COPY > m_Copy (SrcTy &&Src)
 
template<typename SrcTy >
UnaryOp_match< SrcTy, TargetOpcode::G_FSQRT > m_GFSqrt (const SrcTy &Src)
 
template<typename Pred , typename LHS , typename RHS >
CompareOp_match< Pred, LHS, RHS, TargetOpcode::G_ICMP > m_GICmp (const Pred &P, const LHS &L, const RHS &R)
 
template<typename Pred , typename LHS , typename RHS >
CompareOp_match< Pred, LHS, RHS, TargetOpcode::G_FCMP > m_GFCmp (const Pred &P, const LHS &L, const RHS &R)
 
CheckType m_SpecificType (LLT Ty)
 
template<typename Src0Ty , typename Src1Ty , typename Src2Ty >
TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, TargetOpcode::G_INSERT_VECTOR_ELT > m_GInsertVecElt (const Src0Ty &Src0, const Src1Ty &Src1, const Src2Ty &Src2)
 
template<typename Src0Ty , typename Src1Ty , typename Src2Ty >
TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, TargetOpcode::G_SELECT > m_GISelect (const Src0Ty &Src0, const Src1Ty &Src1, const Src2Ty &Src2)
 
template<typename SrcTy >
BinaryOp_match< SpecificConstantMatch, SrcTy, TargetOpcode::G_SUB > m_Neg (const SrcTy &&Src)
 Matches a register negated by a G_SUB. More...
 
template<typename SrcTy >
BinaryOp_match< SrcTy, SpecificConstantMatch, TargetOpcode::G_XOR, truem_Not (const SrcTy &&Src)
 Matches a register not-ed by a G_XOR. More...
 

Function Documentation

◆ m_all_of()

template<typename... Preds>
And<Preds...> llvm::MIPatternMatch::m_all_of ( Preds &&...  preds)

◆ m_AllOnesInt()

SpecificConstantMatch llvm::MIPatternMatch::m_AllOnesInt ( )
inline

Definition at line 172 of file MIPatternMatch.h.

Referenced by m_Not().

◆ m_any_of()

template<typename... Preds>
Or<Preds...> llvm::MIPatternMatch::m_any_of ( Preds &&...  preds)

◆ m_BinOp()

template<typename LHS , typename RHS >
BinaryOpc_match<LHS, RHS, false> llvm::MIPatternMatch::m_BinOp ( unsigned  Opcode,
const LHS &  L,
const RHS &  R 
)
inline

◆ m_CommutativeBinOp()

template<typename LHS , typename RHS >
BinaryOpc_match<LHS, RHS, true> llvm::MIPatternMatch::m_CommutativeBinOp ( unsigned  Opcode,
const LHS &  L,
const RHS &  R 
)
inline

Definition at line 353 of file MIPatternMatch.h.

Referenced by AMDGPURegBankCombinerHelper::matchMed().

◆ m_Copy()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::COPY> llvm::MIPatternMatch::m_Copy ( SrcTy &&  Src)
inline

Definition at line 525 of file MIPatternMatch.h.

Referenced by llvm::AMDGPU::getBaseWithConstantOffset().

◆ m_GAdd()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_ADD, true> llvm::MIPatternMatch::m_GAdd ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 359 of file MIPatternMatch.h.

Referenced by getBaseWithConstantOffset().

◆ m_GAnd()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_AND, true> llvm::MIPatternMatch::m_GAnd ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GAnyExt()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_ANYEXT> llvm::MIPatternMatch::m_GAnyExt ( const SrcTy &  Src)
inline

◆ m_GAShr()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_ASHR, false> llvm::MIPatternMatch::m_GAShr ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GBitcast()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_BITCAST> llvm::MIPatternMatch::m_GBitcast ( const SrcTy &  Src)
inline

Definition at line 492 of file MIPatternMatch.h.

Referenced by peekThroughBitcast().

◆ m_GCst()

GCstAndRegMatch llvm::MIPatternMatch::m_GCst ( Optional< ValueAndVReg > &  ValReg)
inline

Definition at line 85 of file MIPatternMatch.h.

Referenced by llvm::CombinerHelper::matchReassocConstantInnerLHS().

◆ m_GFabs()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_FABS> llvm::MIPatternMatch::m_GFabs ( const SrcTy &  Src)
inline

Definition at line 515 of file MIPatternMatch.h.

Referenced by llvm::CombinerHelper::matchCombineFAbsOfFAbs().

◆ m_GFAdd()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_FADD, true> llvm::MIPatternMatch::m_GFAdd ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 383 of file MIPatternMatch.h.

Referenced by llvm::CombinerHelper::matchRedundantNegOperands().

◆ m_GFCmp()

template<typename Pred , typename LHS , typename RHS >
CompareOp_match<Pred, LHS, RHS, TargetOpcode::G_FCMP> llvm::MIPatternMatch::m_GFCmp ( const Pred &  P,
const LHS &  L,
const RHS &  R 
)
inline

◆ m_GFCst() [1/2]

bind_ty<const ConstantFP *> llvm::MIPatternMatch::m_GFCst ( const ConstantFP *&  C)
inline

Definition at line 295 of file MIPatternMatch.h.

◆ m_GFCst() [2/2]

GFCstAndRegMatch llvm::MIPatternMatch::m_GFCst ( Optional< FPValueAndVReg > &  FPValReg)
inline

Definition at line 98 of file MIPatternMatch.h.

Referenced by llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic().

◆ m_GFCstOrSplat()

GFCstOrSplatGFCstMatch llvm::MIPatternMatch::m_GFCstOrSplat ( Optional< FPValueAndVReg > &  FPValReg)
inline

◆ m_GFMul()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_FMUL, true> llvm::MIPatternMatch::m_GFMul ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 389 of file MIPatternMatch.h.

◆ m_GFNeg()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_FNEG> llvm::MIPatternMatch::m_GFNeg ( const SrcTy &  Src)
inline

◆ m_GFPExt()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_FPEXT> llvm::MIPatternMatch::m_GFPExt ( const SrcTy &  Src)
inline

◆ m_GFPTrunc()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_FPTRUNC> llvm::MIPatternMatch::m_GFPTrunc ( const SrcTy &  Src)
inline

Definition at line 510 of file MIPatternMatch.h.

◆ m_GFSqrt()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_FSQRT> llvm::MIPatternMatch::m_GFSqrt ( const SrcTy &  Src)
inline

◆ m_GFSub()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_FSUB, false> llvm::MIPatternMatch::m_GFSub ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 395 of file MIPatternMatch.h.

Referenced by llvm::CombinerHelper::matchRedundantNegOperands().

◆ m_GICmp()

template<typename Pred , typename LHS , typename RHS >
CompareOp_match<Pred, LHS, RHS, TargetOpcode::G_ICMP> llvm::MIPatternMatch::m_GICmp ( const Pred &  P,
const LHS &  L,
const RHS &  R 
)
inline

Definition at line 563 of file MIPatternMatch.h.

References P.

Referenced by matchMutateAnyExtToZExt().

◆ m_GInsertVecElt()

template<typename Src0Ty , typename Src1Ty , typename Src2Ty >
TernaryOp_match<Src0Ty, Src1Ty, Src2Ty, TargetOpcode::G_INSERT_VECTOR_ELT> llvm::MIPatternMatch::m_GInsertVecElt ( const Src0Ty &  Src0,
const Src1Ty &  Src1,
const Src2Ty &  Src2 
)
inline

Definition at line 609 of file MIPatternMatch.h.

Referenced by llvm::CombinerHelper::matchCombineInsertVecElts().

◆ m_GIntToPtr()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_INTTOPTR> llvm::MIPatternMatch::m_GIntToPtr ( const SrcTy &  Src)
inline

◆ m_GISelect()

template<typename Src0Ty , typename Src1Ty , typename Src2Ty >
TernaryOp_match<Src0Ty, Src1Ty, Src2Ty, TargetOpcode::G_SELECT> llvm::MIPatternMatch::m_GISelect ( const Src0Ty &  Src0,
const Src1Ty &  Src1,
const Src2Ty &  Src2 
)
inline

Definition at line 616 of file MIPatternMatch.h.

◆ m_GLShr()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_LSHR, false> llvm::MIPatternMatch::m_GLShr ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GMul()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_MUL, true> llvm::MIPatternMatch::m_GMul ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 377 of file MIPatternMatch.h.

◆ m_GOr()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_OR, true> llvm::MIPatternMatch::m_GOr ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GPtrAdd()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_PTR_ADD, true> llvm::MIPatternMatch::m_GPtrAdd ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GPtrToInt()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_PTRTOINT> llvm::MIPatternMatch::m_GPtrToInt ( const SrcTy &  Src)
inline

◆ m_GSExt()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_SEXT> llvm::MIPatternMatch::m_GSExt ( const SrcTy &  Src)
inline

◆ m_GShl()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_SHL, false> llvm::MIPatternMatch::m_GShl ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GSMax()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_SMAX, false> llvm::MIPatternMatch::m_GSMax ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GSMin()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_SMIN, false> llvm::MIPatternMatch::m_GSMin ( const LHS &  L,
const RHS &  R 
)
inline

◆ m_GSub()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_SUB> llvm::MIPatternMatch::m_GSub ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 370 of file MIPatternMatch.h.

Referenced by m_Neg(), and llvm::CombinerHelper::matchOrShiftToFunnelShift().

◆ m_GTrunc()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_TRUNC> llvm::MIPatternMatch::m_GTrunc ( const SrcTy &  Src)
inline

◆ m_GXor()

template<typename LHS , typename RHS >
BinaryOp_match<LHS, RHS, TargetOpcode::G_XOR, true> llvm::MIPatternMatch::m_GXor ( const LHS &  L,
const RHS &  R 
)
inline

Definition at line 407 of file MIPatternMatch.h.

Referenced by m_Not(), and llvm::CombinerHelper::matchNotCmp().

◆ m_GZExt()

template<typename SrcTy >
UnaryOp_match<SrcTy, TargetOpcode::G_ZEXT> llvm::MIPatternMatch::m_GZExt ( const SrcTy &  Src)
inline

◆ m_ICst()

ConstantMatch llvm::MIPatternMatch::m_ICst ( int64_t &  Cst)
inline

◆ m_MInstr()

bind_ty<MachineInstr *> llvm::MIPatternMatch::m_MInstr ( MachineInstr *&  MI)
inline

◆ m_Neg()

template<typename SrcTy >
BinaryOp_match<SpecificConstantMatch, SrcTy, TargetOpcode::G_SUB> llvm::MIPatternMatch::m_Neg ( const SrcTy &&  Src)
inline

Matches a register negated by a G_SUB.

G_SUB 0, negated_reg

Definition at line 625 of file MIPatternMatch.h.

References m_GSub(), and m_ZeroInt().

Referenced by llvm::InstCombiner::getComplexity(), LinearizeExprTree(), llvm::CombinerHelper::matchSimplifyAddToSub(), NegateValue(), and ShouldBreakUpSubtract().

◆ m_Not()

template<typename SrcTy >
BinaryOp_match<SrcTy, SpecificConstantMatch, TargetOpcode::G_XOR, true> llvm::MIPatternMatch::m_Not ( const SrcTy &&  Src)
inline

◆ m_OneNonDBGUse()

template<typename SubPat >
OneNonDBGUse_match<SubPat> llvm::MIPatternMatch::m_OneNonDBGUse ( const SubPat &  SP)
inline

◆ m_OneUse()

template<typename SubPat >
OneUse_match<SubPat> llvm::MIPatternMatch::m_OneUse ( const SubPat &  SP)
inline

◆ m_Pred() [1/2]

operand_type_match llvm::MIPatternMatch::m_Pred ( )
inline

Definition at line 292 of file MIPatternMatch.h.

◆ m_Pred() [2/2]

bind_ty<CmpInst::Predicate> llvm::MIPatternMatch::m_Pred ( CmpInst::Predicate P)
inline

◆ m_Reg() [1/2]

operand_type_match llvm::MIPatternMatch::m_Reg ( )
inline

Definition at line 189 of file MIPatternMatch.h.

Referenced by AMDGPUCombinerHelper::applyFoldableFneg(), getBaseWithConstantOffset(), llvm::GISelAddressing::getPointerInfo(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchBitfieldExtractFromAnd(), llvm::CombinerHelper::matchBitfieldExtractFromShrAnd(), AMDGPUPreLegalizerCombinerHelper::matchClampI64ToI16(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineFAbsOfFAbs(), llvm::CombinerHelper::matchCombineFAbsOfFNeg(), llvm::CombinerHelper::matchCombineFNegOfFNeg(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineP2IToI2P(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineTruncOfShl(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchCombineZextTrunc(), AMDGPUPostLegalizerCombinerHelper::matchCvtF32UByteN(), AMDGPUPostLegalizerCombinerHelper::matchFMinFMaxLegacy(), matchFormTruncstore(), matchICmpRedundantTrunc(), matchLDPSTPAddrMode(), matchLoadAndBytePosition(), AMDGPURegBankCombinerHelper::matchMed(), matchMutateAnyExtToZExt(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchOverlappingAnd(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchRedundantNegOperands(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchTruncStoreMerge(), llvm::CombinerHelper::matchXorOfAndWithSameReg(), matchZeroExtendFromS32(), peekThroughBitcast(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), and tryToSimplifyUADDO().

◆ m_Reg() [2/2]

bind_ty<Register> llvm::MIPatternMatch::m_Reg ( Register R)
inline

Definition at line 288 of file MIPatternMatch.h.

◆ m_SpecificICst()

SpecificConstantMatch llvm::MIPatternMatch::m_SpecificICst ( int64_t  RequestedValue)
inline

Matches a constant equal to RequestedValue.

Definition at line 128 of file MIPatternMatch.h.

Referenced by llvm::isBuildVectorConstantSplat(), matchFoldMergeToZext(), matchICmpRedundantTrunc(), and llvm::CombinerHelper::matchICmpToLHSKnownBits().

◆ m_SpecificICstOrSplat()

SpecificConstantOrSplatMatch llvm::MIPatternMatch::m_SpecificICstOrSplat ( int64_t  RequestedValue)
inline

Matches a RequestedValue constant or a constant splat of RequestedValue.

Definition at line 165 of file MIPatternMatch.h.

Referenced by llvm::CombinerHelper::matchMulOBy2(), and llvm::CombinerHelper::matchOrShiftToFunnelShift().

◆ m_SpecificICstSplat()

SpecificConstantSplatMatch llvm::MIPatternMatch::m_SpecificICstSplat ( int64_t  RequestedValue)
inline

Matches a constant splat of RequestedValue.

Definition at line 144 of file MIPatternMatch.h.

◆ m_SpecificType()

CheckType llvm::MIPatternMatch::m_SpecificType ( LLT  Ty)
inline

◆ m_Type()

bind_ty<LLT> llvm::MIPatternMatch::m_Type ( LLT  Ty)
inline

Definition at line 290 of file MIPatternMatch.h.

◆ m_ZeroInt()

SpecificConstantMatch llvm::MIPatternMatch::m_ZeroInt ( )
inline

◆ mi_match() [1/2]

template<typename Pattern >
bool llvm::MIPatternMatch::mi_match ( MachineInstr MI,
const MachineRegisterInfo MRI,
Pattern &&  P 
)

Definition at line 29 of file MIPatternMatch.h.

References MI, MRI, and P.

◆ mi_match() [2/2]

template<typename Reg , typename Pattern >
bool llvm::MIPatternMatch::mi_match ( Reg  R,
const MachineRegisterInfo MRI,
Pattern &&  P 
)

Definition at line 24 of file MIPatternMatch.h.

References MRI, and P.

Referenced by AMDGPUCombinerHelper::applyFoldableFneg(), clampDynamicVectorIndex(), llvm::AMDGPU::getBaseWithConstantOffset(), getBaseWithConstantOffset(), llvm::GISelAddressing::getPointerInfo(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), llvm::isBuildVectorConstantSplat(), llvm::SITargetLowering::isCanonicalized(), isConstantCostlierToNegate(), llvm::AMDGPULegalizerInfo::legalizeImageIntrinsic(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::MIPatternMatch::SpecificConstantMatch::match(), llvm::MIPatternMatch::SpecificConstantOrSplatMatch::match(), llvm::MIPatternMatch::BinaryOp_match< LHS_P, RHS_P, Opcode, Commutable >::match(), llvm::MIPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable >::match(), llvm::MIPatternMatch::UnaryOp_match< SrcTy, Opcode >::match(), llvm::MIPatternMatch::CompareOp_match< Pred_P, LHS_P, RHS_P, Opcode >::match(), llvm::MIPatternMatch::TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, Opcode >::match(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchBitfieldExtractFromAnd(), llvm::CombinerHelper::matchBitfieldExtractFromShrAnd(), AMDGPUPreLegalizerCombinerHelper::matchClampI64ToI16(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineConstPtrAddToI2P(), llvm::CombinerHelper::matchCombineFAbsOfFAbs(), llvm::CombinerHelper::matchCombineFAbsOfFNeg(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFNegOfFNeg(), llvm::CombinerHelper::matchCombineFSubFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineP2IToI2P(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineTruncOfShl(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchCombineZextTrunc(), AMDGPUPostLegalizerCombinerHelper::matchCvtF32UByteN(), matchDupFromInsertVectorElt(), AMDGPUPostLegalizerCombinerHelper::matchFMinFMaxLegacy(), matchFoldMergeToZext(), matchFormTruncstore(), matchICmpRedundantTrunc(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), matchLDPSTPAddrMode(), matchLoadAndBytePosition(), AMDGPURegBankCombinerHelper::matchMed(), llvm::CombinerHelper::matchMulOBy2(), matchMutateAnyExtToZExt(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchOverlappingAnd(), AMDGPUPostLegalizerCombinerHelper::matchRcpSqrtToRsq(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchRedundantNegOperands(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchTruncStoreMerge(), llvm::CombinerHelper::matchXorOfAndWithSameReg(), matchZeroExtendFromS32(), peekThroughBitcast(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), and tryToSimplifyUADDO().