LLVM 20.0.0git
|
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 | ICstOrSplatMatch |
struct | ImplicitDefMatch |
struct | OneNonDBGUse_match |
struct | OneUse_match |
struct | operand_type_match |
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 | SpecificRegisterMatch |
} 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) |
template<typename ConstT > | |
std::optional< ConstT > | matchConstant (Register, const MachineRegisterInfo &) |
template<> | |
std::optional< APInt > | matchConstant (Register Reg, const MachineRegisterInfo &MRI) |
template<> | |
std::optional< int64_t > | matchConstant (Register Reg, const MachineRegisterInfo &MRI) |
ConstantMatch< APInt > | m_ICst (APInt &Cst) |
ConstantMatch< int64_t > | m_ICst (int64_t &Cst) |
template<typename ConstT > | |
std::optional< ConstT > | matchConstantSplat (Register, const MachineRegisterInfo &) |
template<> | |
std::optional< APInt > | matchConstantSplat (Register Reg, const MachineRegisterInfo &MRI) |
template<> | |
std::optional< int64_t > | matchConstantSplat (Register Reg, const MachineRegisterInfo &MRI) |
ICstOrSplatMatch< APInt > | m_ICstOrSplat (APInt &Cst) |
ICstOrSplatMatch< int64_t > | m_ICstOrSplat (int64_t &Cst) |
GCstAndRegMatch | m_GCst (std::optional< ValueAndVReg > &ValReg) |
GFCstAndRegMatch | m_GFCst (std::optional< FPValueAndVReg > &FPValReg) |
GFCstOrSplatGFCstMatch | m_GFCstOrSplat (std::optional< FPValueAndVReg > &FPValReg) |
SpecificConstantMatch | m_SpecificICst (int64_t RequestedValue) |
Matches a constant equal to RequestedValue . | |
SpecificConstantSplatMatch | m_SpecificICstSplat (int64_t RequestedValue) |
Matches a constant splat of RequestedValue . | |
SpecificConstantOrSplatMatch | m_SpecificICstOrSplat (int64_t RequestedValue) |
Matches a RequestedValue constant or a constant splat of RequestedValue . | |
SpecificConstantMatch | m_ZeroInt () |
{ Convenience matchers for specific integer values. | |
SpecificConstantMatch | m_AllOnesInt () |
SpecificRegisterMatch | m_SpecificReg (Register RequestedReg) |
Matches a register only if it is equal to RequestedReg . | |
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< Register > | m_Reg (Register &R) |
bind_ty< MachineInstr * > | m_MInstr (MachineInstr *&MI) |
bind_ty< LLT > | m_Type (LLT Ty) |
bind_ty< CmpInst::Predicate > | m_Pred (CmpInst::Predicate &P) |
operand_type_match | m_Pred () |
ImplicitDefMatch | m_GImplicitDef () |
bind_ty< const ConstantFP * > | m_GFCst (const ConstantFP *&C) |
template<typename LHS , typename RHS > | |
BinaryOpc_match< LHS, RHS, false > | m_BinOp (unsigned Opcode, const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOpc_match< LHS, RHS, true > | m_CommutativeBinOp (unsigned Opcode, const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_ADD, true > | m_GAdd (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_BUILD_VECTOR, false > | m_GBuildVector (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_BUILD_VECTOR_TRUNC, false > | m_GBuildVectorTrunc (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_PTR_ADD, false > | m_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, true > | m_GMul (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_FADD, true > | m_GFAdd (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_FMUL, true > | m_GFMul (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_FSUB, false > | m_GFSub (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_AND, true > | m_GAnd (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_XOR, true > | m_GXor (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_OR, true > | m_GOr (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_SHL, false > | m_GShl (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_LSHR, false > | m_GLShr (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_ASHR, false > | m_GAShr (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_SMAX, false > | m_GSMax (const LHS &L, const RHS &R) |
template<typename LHS , typename RHS > | |
BinaryOp_match< LHS, RHS, TargetOpcode::G_SMIN, false > | m_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) |
template<typename Pred , typename LHS , typename RHS > | |
CompareOp_match< Pred, LHS, RHS, TargetOpcode::G_ICMP, true > | m_c_GICmp (const Pred &P, const LHS &L, const RHS &R) |
G_ICMP matcher that also matches commuted compares. | |
template<typename Pred , typename LHS , typename RHS > | |
CompareOp_match< Pred, LHS, RHS, TargetOpcode::G_FCMP, true > | m_c_GFCmp (const Pred &P, const LHS &L, const RHS &R) |
G_FCMP matcher that also matches commuted compares. | |
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. | |
template<typename SrcTy > | |
BinaryOp_match< SrcTy, SpecificConstantMatch, TargetOpcode::G_XOR, true > | m_Not (const SrcTy &&Src) |
Matches a register not-ed by a G_XOR. | |
And< Preds... > llvm::MIPatternMatch::m_all_of | ( | Preds &&... | preds | ) |
Definition at line 310 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineI2PToP2I(), and llvm::CombinerHelper::matchCombineZextTrunc().
|
inline |
Definition at line 239 of file MIPatternMatch.h.
Referenced by BitOp3_Op(), and m_Not().
Or< Preds... > llvm::MIPatternMatch::m_any_of | ( | Preds &&... | preds | ) |
Definition at line 314 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCommuteShift(), and llvm::CombinerHelper::matchRedundantBinOpInEquality().
|
inline |
Definition at line 438 of file MIPatternMatch.h.
|
inline |
G_FCMP matcher that also matches commuted compares.
E.g.
m_c_GFCmp(m_Pred(...), m_FAdd(...), m_GFMul(...))
Could match both of:
fcmp ogt (fadd x, y) (fmul a, b) fcmp olt (fmul a, b) (fadd x, y)
Definition at line 710 of file MIPatternMatch.h.
References P.
|
inline |
G_ICMP matcher that also matches commuted compares.
E.g.
m_c_GICmp(m_Pred(...), m_GAdd(...), m_GSub(...))
Could match both of:
icmp ugt (add x, y) (sub a, b) icmp ult (sub a, b) (add x, y)
Definition at line 695 of file MIPatternMatch.h.
References P.
Referenced by llvm::CombinerHelper::matchRedundantBinOpInEquality().
|
inline |
Definition at line 445 of file MIPatternMatch.h.
|
inline |
Definition at line 630 of file MIPatternMatch.h.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset().
|
inline |
Definition at line 451 of file MIPatternMatch.h.
Referenced by getBaseWithConstantOffset(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), and llvm::CombinerHelper::matchSubAddSameReg().
|
inline |
Definition at line 506 of file MIPatternMatch.h.
Referenced by isLaneMaskFromSameBlock(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchOverlappingAnd(), and llvm::CombinerHelper::matchXorOfAndWithSameReg().
|
inline |
Definition at line 571 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineShlOfExtend().
|
inline |
Definition at line 536 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), and llvm::CombinerHelper::matchAshrShlToSextInreg().
|
inline |
Definition at line 597 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), peekThroughBitcast(), and stripBitCast().
|
inline |
Definition at line 457 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchTruncBuildVectorFold(), and llvm::CombinerHelper::matchTruncLshrBuildVectorFold().
|
inline |
Definition at line 463 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold().
|
inline |
Definition at line 151 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), and llvm::CombinerHelper::matchTruncLshrBuildVectorFold().
|
inline |
Definition at line 620 of file MIPatternMatch.h.
Referenced by selectWMMAModsNegAbs().
|
inline |
Definition at line 488 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchRedundantNegOperands().
|
inline |
Definition at line 680 of file MIPatternMatch.h.
References P.
|
inline |
Definition at line 387 of file MIPatternMatch.h.
References llvm::CallingConv::C.
|
inline |
Definition at line 165 of file MIPatternMatch.h.
|
inline |
Definition at line 180 of file MIPatternMatch.h.
Referenced by llvm::SITargetLowering::isCanonicalized(), isConstantCostlierToNegate(), llvm::CombinerHelper::matchCommuteFPConstantToRHS(), and llvm::CombinerHelper::matchConstantFPOp().
|
inline |
Definition at line 494 of file MIPatternMatch.h.
|
inline |
|
inline |
Definition at line 586 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), and llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA().
|
inline |
Definition at line 615 of file MIPatternMatch.h.
|
inline |
Definition at line 635 of file MIPatternMatch.h.
|
inline |
Definition at line 500 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchRedundantNegOperands().
|
inline |
Definition at line 674 of file MIPatternMatch.h.
References P.
Referenced by getOperandsForBranch().
|
inline |
Definition at line 384 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold().
|
inline |
Definition at line 750 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineInsertVecElts().
|
inline |
Definition at line 609 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineConstPtrAddToI2P().
|
inline |
Definition at line 757 of file MIPatternMatch.h.
|
inline |
Definition at line 530 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), isExtractHiElt(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), and llvm::CombinerHelper::matchTruncLshrBuildVectorFold().
|
inline |
Definition at line 482 of file MIPatternMatch.h.
|
inline |
Definition at line 517 of file MIPatternMatch.h.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchCommuteShift(), and llvm::CombinerHelper::matchOrShiftToFunnelShift().
|
inline |
Definition at line 470 of file MIPatternMatch.h.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset(), llvm::GISelAddressing::getPointerInfo(), llvm::GISelAddressing::instMayAlias(), matchLDPSTPAddrMode(), and llvm::CombinerHelper::matchReassocConstantInnerLHS().
|
inline |
Definition at line 603 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), and llvm::CombinerHelper::matchCombineI2PToP2I().
|
inline |
Definition at line 576 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineShlOfExtend().
|
inline |
Definition at line 524 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAshrShlToSextInreg(), matchLoadAndBytePosition(), and llvm::CombinerHelper::matchOrShiftToFunnelShift().
|
inline |
Definition at line 542 of file MIPatternMatch.h.
|
inline |
Definition at line 548 of file MIPatternMatch.h.
|
inline |
Definition at line 475 of file MIPatternMatch.h.
Referenced by m_Neg(), llvm::CombinerHelper::matchAddSubSameReg(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), and llvm::CombinerHelper::matchSubAddSameReg().
|
inline |
Definition at line 591 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), isExtractHiElt(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchSextTruncSextLoad(), and llvm::CombinerHelper::matchSimplifySelectToMinMax().
|
inline |
Definition at line 512 of file MIPatternMatch.h.
Referenced by m_Not(), llvm::CombinerHelper::matchNotCmp(), and llvm::CombinerHelper::matchRedundantBinOpInEquality().
|
inline |
Definition at line 581 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), and matchZeroExtendFromS32().
|
inline |
Definition at line 93 of file MIPatternMatch.h.
Referenced by clampVectorIndex(), getBaseWithConstantOffset(), llvm::AMDGPU::getBaseWithConstantOffset(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::MIPatternMatch::SpecificConstantMatch::match(), llvm::MIPatternMatch::SpecificConstantOrSplatMatch::match(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchCombineConstPtrAddToI2P(), llvm::CombinerHelper::matchCombineInsertVecElts(), matchLDPSTPAddrMode(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchNotCmp(), and llvm::CombinerHelper::matchOverlappingAnd().
|
inline |
Definition at line 96 of file MIPatternMatch.h.
|
inline |
Definition at line 134 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), and llvm::CombinerHelper::matchSubAddSameReg().
|
inline |
Definition at line 138 of file MIPatternMatch.h.
|
inline |
Definition at line 370 of file MIPatternMatch.h.
References MI.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset(), 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, Commutable >::match(), llvm::MIPatternMatch::TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, Opcode >::match(), llvm::MIPatternMatch::ImplicitDefMatch::match(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFSubFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA(), and llvm::CombinerHelper::matchCombineInsertVecElts().
|
inline |
Matches a register negated by a G_SUB.
G_SUB 0, negated_reg
Definition at line 766 of file MIPatternMatch.h.
References m_GSub(), and m_ZeroInt().
|
inline |
Matches a register not-ed by a G_XOR.
G_XOR not_reg, -1
Definition at line 774 of file MIPatternMatch.h.
References m_AllOnesInt(), and m_GXor().
|
inline |
Definition at line 61 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCommuteShift(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), and llvm::CombinerHelper::matchSimplifySelectToMinMax().
|
inline |
Definition at line 47 of file MIPatternMatch.h.
|
inline |
Definition at line 373 of file MIPatternMatch.h.
Referenced by getOperandsForBranch(), and llvm::CombinerHelper::matchRedundantBinOpInEquality().
|
inline |
Definition at line 372 of file MIPatternMatch.h.
References P.
|
inline |
Definition at line 270 of file MIPatternMatch.h.
Referenced by llvm::AMDGPUCombinerHelper::applyFoldableFneg(), BitOp3_Op(), getBaseWithConstantOffset(), llvm::AMDGPU::getBaseWithConstantOffset(), getOperandsForBranch(), llvm::GISelAddressing::getPointerInfo(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), isExtractHiElt(), isLaneMaskFromSameBlock(), llvm::CombinerHelper::matchAddSubSameReg(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchCommuteShift(), matchLDPSTPAddrMode(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchOverlappingAnd(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchRedundantNegOperands(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchSimplifySelectToMinMax(), llvm::CombinerHelper::matchSubAddSameReg(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), llvm::CombinerHelper::matchXorOfAndWithSameReg(), matchZeroExtendFromS32(), peekThroughBitcast(), selectWMMAModsNegAbs(), and stripBitCast().
Definition at line 369 of file MIPatternMatch.h.
|
inline |
Matches a constant equal to RequestedValue
.
Definition at line 195 of file MIPatternMatch.h.
Referenced by llvm::isBuildVectorConstantSplat(), isExtractHiElt(), and llvm::CombinerHelper::matchICmpToLHSKnownBits().
|
inline |
Matches a RequestedValue
constant or a constant splat of RequestedValue
.
Definition at line 232 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAddEToAddO(), llvm::CombinerHelper::matchMulOBy0(), llvm::CombinerHelper::matchMulOBy2(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), and llvm::CombinerHelper::matchSubAddSameReg().
|
inline |
Matches a constant splat of RequestedValue
.
Definition at line 211 of file MIPatternMatch.h.
|
inline |
Matches a register only if it is equal to RequestedReg
.
Definition at line 254 of file MIPatternMatch.h.
Definition at line 724 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineI2PToP2I(), and llvm::CombinerHelper::matchCombineZextTrunc().
Definition at line 371 of file MIPatternMatch.h.
|
inline |
{ Convenience matchers for specific integer values.
Definition at line 238 of file MIPatternMatch.h.
Referenced by m_Neg().
|
inline |
Definition at line 70 of file MIPatternMatch.h.
References llvm::getIConstantVRegVal(), MRI, and Reg.
|
inline |
Definition at line 76 of file MIPatternMatch.h.
References llvm::getIConstantVRegSExtVal(), MRI, and Reg.
|
inline |
|
inline |
Definition at line 105 of file MIPatternMatch.h.
References llvm::getIConstantSplatVal(), MRI, and Reg.
|
inline |
Definition at line 112 of file MIPatternMatch.h.
References llvm::getIConstantSplatSExtVal(), MRI, and Reg.
|
inline |
bool llvm::MIPatternMatch::mi_match | ( | MachineInstr & | MI, |
const MachineRegisterInfo & | MRI, | ||
Pattern && | P | ||
) |
Definition at line 31 of file MIPatternMatch.h.
bool llvm::MIPatternMatch::mi_match | ( | Reg | R, |
const MachineRegisterInfo & | MRI, | ||
Pattern && | P | ||
) |
Definition at line 25 of file MIPatternMatch.h.
Referenced by llvm::AMDGPUCombinerHelper::applyFoldableFneg(), llvm::AMDGPURegisterBankInfo::applyMappingMAD_64_32(), BitOp3_Op(), clampVectorIndex(), getBaseWithConstantOffset(), llvm::AMDGPU::getBaseWithConstantOffset(), getOperandsForBranch(), llvm::GISelAddressing::getPointerInfo(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), llvm::isBuildVectorConstantSplat(), isConstantCostlierToNegate(), isExtractHiElt(), isLaneMaskFromSameBlock(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), 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, Commutable >::match(), llvm::MIPatternMatch::TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, Opcode >::match(), llvm::MIPatternMatch::SpecificConstantMatch::match(), llvm::MIPatternMatch::SpecificConstantOrSplatMatch::match(), llvm::MIPatternMatch::ImplicitDefMatch::match(), llvm::CombinerHelper::matchAddEToAddO(), llvm::CombinerHelper::matchAddSubSameReg(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineConstPtrAddToI2P(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFSubFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchCommuteFPConstantToRHS(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchConstantFPOp(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), matchLDPSTPAddrMode(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchMulOBy0(), llvm::CombinerHelper::matchMulOBy2(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchOverlappingAnd(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchRedundantNegOperands(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchSimplifySelectToMinMax(), llvm::CombinerHelper::matchSubAddSameReg(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), llvm::CombinerHelper::matchXorOfAndWithSameReg(), matchZeroExtendFromS32(), peekThroughBitcast(), selectWMMAModsNegAbs(), and stripBitCast().