|
LLVM 24.0.0git
|
Classes | |
| struct | AllOnesConstantMatch |
| Matches an integer constant with all bits set, regardless of width. More... | |
| struct | And |
| Matching combinators. More... | |
| struct | And< Pred, Preds... > |
| struct | AnyImmMatch |
| Matches any immediate operand. More... | |
| struct | BinaryOp_match |
| struct | BinaryOpc_match |
| struct | bind_helper |
| struct | bind_helper< const ConstantFP * > |
| struct | bind_helper< const MachineInstr * > |
| struct | bind_helper< LLT > |
| struct | bind_helper< MachineInstr * > |
| struct | bind_ty |
| struct | BindImmMatch |
| struct | CheckType |
| struct | ClassifyOp_match |
| struct | CompareOp_match |
| struct | ConstantMatch |
| struct | deferred_helper |
| struct | deferred_helper< LLT > |
| struct | deferred_ty |
| struct | GConstantBitsMatch |
Match a literal G_CONSTANT or G_FCONSTANT, binding its raw bits to Bits (the integer value, or the float reinterpreted as an integer). More... | |
| struct | GCstAndRegMatch |
| struct | GFCstAndRegMatch |
| struct | GFCstOrSplatGFCstMatch |
| struct | GFCstPredMatch |
| Matches an FP constant whose value satisfies the given predicate. More... | |
| struct | GFrameIndexMatch |
| Matches a G_FRAME_INDEX, binding its frame index. More... | |
| struct | GInstrBind |
Binds the defining instruction of Reg if it is a Class. More... | |
| struct | GIntrinsic_match |
| Matches a GIntrinsic with a specific intrinsic ID and optionally, matchers for its leading arguments. More... | |
| struct | ICstOrSplatMatch |
| struct | ImplicitDefMatch |
| struct | LoadOp_match |
Match a load of type Class, binding its pointer operand (like IR's m_Load), and optionally the instruction and/or its MachineMemOperand. More... | |
| struct | MIFlagsRef |
| Wraps a MIFlags output for use as an optional trailing operand of an instruction matcher (e.g. More... | |
| struct | MMORef |
| Optional trailing operand for a load matcher (e.g. More... | |
| struct | OneNonDBGUse_match |
| struct | OneUse_match |
| struct | operand_type_match |
| struct | Or |
| struct | Or< Pred, Preds... > |
| struct | ShuffleVectorMatch |
| Matches a G_SHUFFLE_VECTOR, binding its two source operands and its mask. More... | |
| 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 | SpecificImmMatch |
| struct | SpecificRegisterMatch |
| Matcher for a specific register. More... | |
| struct | SrcImmOp_match |
| Matches an op that binds a source operand and an immediate operand with sub-matchers (e.g. 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 Pattern> | |
| bool | mi_match (const 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) |
| template<typename Pred> | |
| GFCstPredMatch (Pred) -> GFCstPredMatch< Pred > | |
| auto | m_PosZeroFP () |
| Matches a floating-point positive zero. | |
| SpecificConstantMatch | m_SpecificICst (const APInt &RequestedValue) |
Matches a constant equal to RequestedValue. | |
| SpecificConstantMatch | m_SpecificICst (int64_t RequestedValue) |
| SpecificImmMatch | m_SpecificImm (int64_t RequestedValue) |
Matches an immediate operand equal to RequestedValue. | |
| BindImmMatch | m_Imm (int64_t &Imm) |
| Binds an immediate operand's value. | |
| AllOnesConstantMatch | m_AllOnes () |
| SpecificConstantSplatMatch | m_SpecificICstSplat (const APInt &RequestedValue) |
Matches a constant splat of RequestedValue. | |
| SpecificConstantSplatMatch | m_SpecificICstSplat (int64_t RequestedValue) |
| SpecificConstantOrSplatMatch | m_SpecificICstOrSplat (const APInt &RequestedValue) |
Matches a RequestedValue constant or a constant splat of RequestedValue. | |
| SpecificConstantOrSplatMatch | m_SpecificICstOrSplat (int64_t 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< const MachineInstr * > | m_MInstr (const MachineInstr *&MI) |
| bind_ty< LLT > | m_Type (LLT &Ty) |
| bind_ty< CmpInst::Predicate > | m_Pred (CmpInst::Predicate &P) |
| operand_type_match | m_Pred () |
| bind_ty< FPClassTest > | m_FPClassTest (FPClassTest &T) |
| MIFlagsRef | m_MIFlags (uint32_t &Flags) |
| MMORef | m_MMO (const MachineMemOperand *&MMO) |
| deferred_ty< Register > | m_DeferredReg (Register &R) |
| Similar to m_SpecificReg/Type, but the specific value to match originated from an earlier sub-pattern in the same mi_match expression. | |
| deferred_ty< LLT > | m_DeferredType (LLT &Ty) |
| ImplicitDefMatch | m_GImplicitDef () |
| GInstrBind< GConstant > | m_GConstant (GConstant *&Inst) |
| Match a literal G_CONSTANT instruction (no look-through of splats or copies). | |
| GInstrBind< const GConstant > | m_GConstant (const GConstant *&Inst) |
| GConstantBitsMatch | m_GConstantOrFConstantBits (APInt &Bits) |
| template<typename PtrP> | |
| LoadOp_match< GAnyLoad, PtrP > | m_GAnyLoad (const PtrP &Ptr) |
| template<typename PtrP> | |
| LoadOp_match< GAnyLoad, PtrP > | m_GAnyLoad (GAnyLoad *&Inst, const PtrP &Ptr) |
| template<typename PtrP> | |
| LoadOp_match< GAnyLoad, PtrP > | m_GAnyLoad (GAnyLoad *&Inst, const PtrP &Ptr, MMORef MMO) |
| template<typename PtrP> | |
| LoadOp_match< GLoad, PtrP > | m_GLoad (const PtrP &Ptr) |
| template<typename PtrP> | |
| LoadOp_match< GLoad, PtrP > | m_GLoad (const PtrP &Ptr, MMORef MMO) |
| GInstrBind< GUnmerge > | m_GUnmerge (GUnmerge *&Inst) |
| Instruction binders for ops with no operand-form matcher (constant-immediate or variadic-source ops). | |
| GInstrBind< GVScale > | m_GVScale (GVScale *&Inst) |
| GInstrBind< GBuildVector > | m_GBuildVector (GBuildVector *&Inst) |
| GInstrBind< GConcatVectors > | m_GConcatVectors (GConcatVectors *&Inst) |
| GInstrBind< GIntrinsic > | m_GIntrinsic (GIntrinsic *&Inst) |
Binds the defining instruction of Reg if it is a GIntrinsic (any of the four G_INTRINSIC* opcodes). | |
| GInstrBind< const GIntrinsic > | m_GIntrinsic (const GIntrinsic *&Inst) |
| template<Intrinsic::ID IntrID, typename... OpMatchers> | |
| GIntrinsic_match< IntrID, OpMatchers... > | m_GIntrinsic (const OpMatchers &...Ops) |
| template<typename Src1Ty, typename Src2Ty> | |
| ShuffleVectorMatch< Src1Ty, Src2Ty > | m_GShuffleVector (const Src1Ty &Src1, const Src2Ty &Src2, ArrayRef< int > &Mask) |
| GFrameIndexMatch | m_GFrameIndex (int &FI) |
| 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_PTR_ADD, false > | m_GPtrAdd (const LHS &L, const RHS &R, MIFlagsRef Flags) |
| 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_SUB > | m_GSub (const LHS &L, const RHS &R, MIFlagsRef Flags) |
| 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_OR, true, MachineInstr::Disjoint > | m_GDisjointOr (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| auto | m_GAddLike (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, true > | m_GSMax (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOp_match< LHS, RHS, TargetOpcode::G_SMIN, true > | m_GSMin (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOp_match< LHS, RHS, TargetOpcode::G_UMAX, true > | m_GUMax (const LHS &L, const RHS &R) |
| template<typename LHS, typename RHS> | |
| BinaryOp_match< LHS, RHS, TargetOpcode::G_UMIN, true > | m_GUMin (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> | |
| SrcImmOp_match< SrcTy, AnyImmMatch, TargetOpcode::G_SEXT_INREG > | m_GSExtInReg (const SrcTy &Src) |
| Matches a G_SEXT_INREG, binding its source and immediate width. | |
| template<typename SrcTy, typename ImmTy> | |
| SrcImmOp_match< SrcTy, ImmTy, TargetOpcode::G_SEXT_INREG > | m_GSExtInReg (const SrcTy &Src, const ImmTy &Imm) |
| template<typename SrcTy> | |
| SrcImmOp_match< SrcTy, AnyImmMatch, TargetOpcode::G_ASSERT_ZEXT > | m_GAssertZext (const SrcTy &Src) |
| Matches a G_ASSERT_ZEXT, binding its source and immediate bit width. | |
| template<typename SrcTy, typename ImmTy> | |
| SrcImmOp_match< SrcTy, ImmTy, TargetOpcode::G_ASSERT_ZEXT > | m_GAssertZext (const SrcTy &Src, const ImmTy &Imm) |
| 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 SrcTy> | |
| UnaryOp_match< SrcTy, TargetOpcode::G_FFLOOR > | m_GFFloor (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. | |
| template<typename LHS, typename Test> | |
| ClassifyOp_match< LHS, Test, TargetOpcode::G_IS_FPCLASS > | m_GIsFPClass (const LHS &L, const Test &T) |
| Matches the register and immediate used in a fpclass test G_IS_FPCLASS val, 96. | |
| 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. | |
| llvm::MIPatternMatch::GFCstPredMatch | ( | Pred | ) | -> GFCstPredMatch< Pred > |
Referenced by m_PosZeroFP().
| And< Preds... > llvm::MIPatternMatch::m_all_of | ( | Preds &&... | preds | ) |
Definition at line 403 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), and llvm::LegalizationArtifactCombiner::tryCombineSExt().
|
inline |
Definition at line 271 of file MIPatternMatch.h.
Referenced by areInverseVectorBitmasks(), llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(), canonicalizeLowbitMask(), canonicalizeSaturatedAddSigned(), canonicalizeSaturatedAddUnsigned(), canonicalizeSaturatedSubtractUnsigned(), dropRedundantMaskingOfLeftShiftInput(), FindSingleBitChange(), llvm::findValuesAffectedByCondition(), llvm::InstCombinerImpl::foldAddWithConstant(), llvm::InstCombinerImpl::foldBinOpShiftWithShift(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBitCast(), foldICmpOfUAddOv(), foldICmpOfVectorReduce(), llvm::InstCombinerImpl::foldICmpOrConstant(), foldICmpPow2Test(), foldICmpWithHighBitMask(), foldICmpWithLowBitMaskedVal(), foldMulSelectToNegate(), foldMulShl1(), llvm::InstCombinerImpl::foldMultiplicationOverflowCheck(), foldSelectICmpMinMax(), foldSelectToUSATI(), llvm::InstCombinerImpl::foldVectorBinop(), llvm::AArch64TTIImpl::getCmpSelInstrCost(), llvm::AArch64TargetLowering::getJumpConditionMergingParams(), getKnownBitsFromAndXorOr(), getMaskedTypeForICmpPair(), instCombineSVEVectorMlaU(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), llvm::SDPatternMatch::m_Not(), llvm::maskContainsAllOneOrUndef(), matchAndCC(), matchEquivZeroRHS(), matchOrCC(), matchSelectPattern(), matchSignedNewValueCC(), matchUAddWithOverflowConstantEdgeCases(), performLastTrueTestVectorCombine(), llvm::X86TargetLowering::shouldFoldSelectWithIdentityConstant(), simplifyAddInst(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyBinaryIntrinsic(), simplifyGEPInst(), llvm::simplifyIntrinsic(), simplifyLogicalRecipe(), simplifyOrInst(), simplifyRecipe(), simplifySelectWithICmpCond(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Definition at line 333 of file MIPatternMatch.h.
References llvm::APInt::getAllOnes().
Referenced by BitOp3_Op(), and m_Not().
| Or< Preds... > llvm::MIPatternMatch::m_any_of | ( | Preds &&... | preds | ) |
Definition at line 407 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), m_GAddLike(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), and llvm::LegalizationArtifactCombiner::tryCombineSExt().
|
inline |
Definition at line 812 of file MIPatternMatch.h.
Referenced by foldSelectBinOpIdentity(), and llvm::InstCombinerImpl::foldSelectShuffle().
|
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 1205 of file MIPatternMatch.h.
|
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 1190 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchRedundantBinOpInEquality().
|
inline |
Definition at line 819 of file MIPatternMatch.h.
|
inline |
Definition at line 1089 of file MIPatternMatch.h.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset(), and getLegalRegBank().
|
inline |
Similar to m_SpecificReg/Type, but the specific value to match originated from an earlier sub-pattern in the same mi_match expression.
For example, we cannot match (add X, X) with m_GAdd(m_Reg(X), m_SpecificReg(X)) because X is not initialized at the time it's passed to m_SpecificReg. Instead, we can use m_GAdd(m_Reg(x), m_DeferredReg(X)).
Definition at line 529 of file MIPatternMatch.h.
Referenced by isAbsoluteValueULEOne(), llvm::CombinerHelper::matchCtls(), and llvm::CombinerHelper::matchSimplifyNegMinMax().
|
inline |
Definition at line 530 of file MIPatternMatch.h.
|
inline |
Definition at line 483 of file MIPatternMatch.h.
References T.
|
inline |
Definition at line 825 of file MIPatternMatch.h.
Referenced by getBaseWithConstantOffset(), m_GAddLike(), llvm::CombinerHelper::matchAddOfVScale(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchFoldAPlusC1MinusC2(), llvm::CombinerHelper::matchFoldC2MinusAPlusC1(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), and llvm::CombinerHelper::matchSubAddSameReg().
Definition at line 917 of file MIPatternMatch.h.
References LHS, m_any_of(), m_GAdd(), m_GDisjointOr(), and RHS.
|
inline |
Definition at line 892 of file MIPatternMatch.h.
Referenced by isLaneMaskFromSameBlock(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchOverlappingAnd(), and llvm::CombinerHelper::matchXorOfAndWithSameReg().
|
inline |
|
inline |
Definition at line 619 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineLoadWithAndMask().
|
inline |
Definition at line 623 of file MIPatternMatch.h.
|
inline |
Definition at line 628 of file MIPatternMatch.h.
|
inline |
Definition at line 935 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), llvm::CombinerHelper::matchAshrShlToSextInreg(), and llvm::CombinerHelper::matchCtls().
|
inline |
Matches a G_ASSERT_ZEXT, binding its source and immediate bit width.
Definition at line 1068 of file MIPatternMatch.h.
|
inline |
Definition at line 1074 of file MIPatternMatch.h.
References Imm.
|
inline |
Definition at line 1008 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), peekThroughBitcast(), stripBitCast(), and AMDGPURegBankLegalizeCombiner::tryEliminateReadAnyLane().
|
inline |
Definition at line 831 of file MIPatternMatch.h.
|
inline |
Definition at line 645 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::SPIRVCombinerHelper::matchSelectToFaceForward(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), and llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector().
|
inline |
Definition at line 837 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchBuildVectorIdentityFold().
|
inline |
Definition at line 648 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineShuffleConcat().
|
inline |
Definition at line 564 of file MIPatternMatch.h.
|
inline |
Match a literal G_CONSTANT instruction (no look-through of splats or copies).
Definition at line 563 of file MIPatternMatch.h.
Referenced by llvm::GIMatchTableExecutor::isBaseWithConstantOffset(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), and llvm::LegalizationArtifactCombiner::tryCombineZExt().
|
inline |
Definition at line 586 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineUnmergeConstant().
|
inline |
Definition at line 162 of file MIPatternMatch.h.
Referenced by isLshrHalf(), isShlHalf(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), and llvm::CombinerHelper::matchTruncLshrBuildVectorFold().
|
inline |
Definition at line 911 of file MIPatternMatch.h.
References llvm::MachineInstr::Disjoint, LHS, and RHS.
Referenced by m_GAddLike().
|
inline |
Definition at line 1079 of file MIPatternMatch.h.
Referenced by selectWMMAModsNegAbs().
|
inline |
Definition at line 874 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchRedundantNegOperands().
|
inline |
Definition at line 1175 of file MIPatternMatch.h.
Referenced by llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
Definition at line 741 of file MIPatternMatch.h.
References C().
|
inline |
Definition at line 176 of file MIPatternMatch.h.
Referenced by isFPExtFromF16OrConst(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
|
inline |
Definition at line 1100 of file MIPatternMatch.h.
Referenced by isAbsoluteValueULEOne().
|
inline |
Definition at line 880 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineFAddFMAFMulToFMadOrFMA(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
Definition at line 1084 of file MIPatternMatch.h.
Referenced by llvm::AMDGPUCombinerHelper::applyFoldableFneg(), llvm::CombinerHelper::matchCombineFSubFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchRedundantNegOperands(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
Definition at line 997 of file MIPatternMatch.h.
Referenced by isFPExtFromF16OrConst(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), and llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA().
|
inline |
Definition at line 1026 of file MIPatternMatch.h.
|
inline |
Definition at line 738 of file MIPatternMatch.h.
|
inline |
Definition at line 1094 of file MIPatternMatch.h.
|
inline |
Definition at line 886 of file MIPatternMatch.h.
Referenced by isAbsoluteValueULEOne(), llvm::SPIRVCombinerHelper::matchLengthToDistance(), and llvm::CombinerHelper::matchRedundantNegOperands().
|
inline |
Definition at line 1169 of file MIPatternMatch.h.
Referenced by getOperandsForBranch(), and llvm::CombinerHelper::matchSelectIMinMax().
|
inline |
Definition at line 541 of file MIPatternMatch.h.
Referenced by llvm::LegalizationArtifactCombiner::ArtifactValueFinder::isSequenceFromUnmerge(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchCombineUnmergeUndef(), and llvm::CombinerHelper::matchUseVectorTruncate().
|
inline |
Definition at line 1253 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineInsertVecElts().
|
inline |
Definition at line 655 of file MIPatternMatch.h.
|
inline |
Definition at line 692 of file MIPatternMatch.h.
References AbstractManglingParser< Derived, Alloc >::Ops.
|
inline |
Binds the defining instruction of Reg if it is a GIntrinsic (any of the four G_INTRINSIC* opcodes).
Definition at line 654 of file MIPatternMatch.h.
Referenced by llvm::AArch64GISelUtils::extractPtrauthBlendDiscriminators(), llvm::SPIRVCombinerHelper::matchLengthToDistance(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
Definition at line 1020 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineConstPtrAddToI2P().
|
inline |
Definition at line 1260 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchFoldBinOpIntoSelect(), llvm::CombinerHelper::matchSelectIMinMax(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
Matches the register and immediate used in a fpclass test G_IS_FPCLASS val, 96.
Definition at line 1213 of file MIPatternMatch.h.
References LHS, T, and llvm::Test.
|
inline |
Definition at line 633 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchSextInRegOfLoad().
|
inline |
Definition at line 637 of file MIPatternMatch.h.
|
inline |
Definition at line 929 of file MIPatternMatch.h.
Referenced by getTruncStoreByteOffset(), isExtractHiElt(), isLshrHalf(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), and llvm::CombinerHelper::matchTruncLshrBuildVectorFold().
|
inline |
Definition at line 868 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchMulOfVScale().
|
inline |
|
inline |
Definition at line 844 of file MIPatternMatch.h.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset(), llvm::GISelAddressing::getPointerInfo(), llvm::GISelAddressing::instMayAlias(), llvm::GIMatchTableExecutor::isBaseWithConstantOffset(), matchLDPSTPAddrMode(), llvm::CombinerHelper::matchPtrAddImmedChain(), and llvm::CombinerHelper::matchReassocConstantInnerLHS().
|
inline |
Definition at line 850 of file MIPatternMatch.h.
|
inline |
Definition at line 1014 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), and llvm::CombinerHelper::matchCombineI2PToP2I().
|
inline |
|
inline |
Matches a G_SEXT_INREG, binding its source and immediate width.
Definition at line 1055 of file MIPatternMatch.h.
|
inline |
Definition at line 1061 of file MIPatternMatch.h.
References Imm.
|
inline |
Definition at line 923 of file MIPatternMatch.h.
Referenced by isShlHalf(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchCtls(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), and llvm::CombinerHelper::matchShlOfVScale().
|
inline |
Definition at line 720 of file MIPatternMatch.h.
Referenced by isExtractHiElt().
|
inline |
Definition at line 941 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::CombinerHelper::matchTruncSSatS(), llvm::CombinerHelper::matchTruncSSatU(), and llvm::CombinerHelper::matchTruncUSatU().
|
inline |
Definition at line 947 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::CombinerHelper::matchTruncSSatS(), and llvm::CombinerHelper::matchTruncSSatU().
|
inline |
Definition at line 855 of file MIPatternMatch.h.
Referenced by m_Neg(), llvm::CombinerHelper::matchAddSubSameReg(), llvm::CombinerHelper::matchFoldAMinusC1MinusC2(), llvm::CombinerHelper::matchFoldAMinusC1PlusC2(), llvm::CombinerHelper::matchFoldC1Minus2MinusC2(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchSubAddSameReg(), and llvm::CombinerHelper::matchSubOfVScale().
|
inline |
Definition at line 862 of file MIPatternMatch.h.
|
inline |
Definition at line 1002 of file MIPatternMatch.h.
Referenced by AMDGPURegBankLegalizeCombiner::getReadAnyLaneSrcs(), getTruncStoreByteOffset(), isExtractHiElt(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchSimplifySelectToMinMax(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), and llvm::LegalizationArtifactCombiner::tryCombineZExt().
|
inline |
Definition at line 953 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchSimplifyNegMinMax().
|
inline |
Definition at line 959 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchSimplifyNegMinMax(), and llvm::CombinerHelper::matchTruncSSatU().
|
inline |
Instruction binders for ops with no operand-form matcher (constant-immediate or variadic-source ops).
Definition at line 643 of file MIPatternMatch.h.
Referenced by isExtractHiElt(), and llvm::CombinerHelper::matchUseVectorTruncate().
|
inline |
Definition at line 644 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAddOfVScale(), llvm::CombinerHelper::matchMulOfVScale(), llvm::CombinerHelper::matchShlOfVScale(), and llvm::CombinerHelper::matchSubOfVScale().
|
inline |
Definition at line 898 of file MIPatternMatch.h.
Referenced by m_Not(), llvm::CombinerHelper::matchCtls(), llvm::CombinerHelper::matchNotCmp(), and llvm::CombinerHelper::matchRedundantBinOpInEquality().
|
inline |
Definition at line 992 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchNonNegZext(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), and llvm::LegalizationArtifactCombiner::tryCombineZExt().
|
inline |
Definition at line 104 of file MIPatternMatch.h.
Referenced by clampVectorIndex(), getBaseWithConstantOffset(), llvm::AMDGPU::getBaseWithConstantOffset(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::MIPatternMatch::AllOnesConstantMatch::match(), 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 107 of file MIPatternMatch.h.
|
inline |
Definition at line 145 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchLshrOfTruncOfLshr(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), and llvm::CombinerHelper::matchSubAddSameReg().
|
inline |
Definition at line 149 of file MIPatternMatch.h.
|
inline |
Binds an immediate operand's value.
Definition at line 261 of file MIPatternMatch.h.
References Imm.
|
inline |
Definition at line 492 of file MIPatternMatch.h.
Referenced by llvm::AMDGPU::getBaseWithConstantOffset(), llvm::CombinerHelper::matchPtrAddImmedChain(), and llvm::CombinerHelper::matchSubOfVScale().
|
inline |
Definition at line 477 of file MIPatternMatch.h.
References MI.
|
inline |
Definition at line 476 of file MIPatternMatch.h.
References MI.
Referenced by llvm::CombinerHelper::applyExtendThroughPhis(), llvm::AMDGPU::getBaseWithConstantOffset(), llvm::MIPatternMatch::BinaryOp_match< LHS_P, RHS_P, Opcode, Commutable, Flags >::match(), llvm::MIPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable >::match(), llvm::MIPatternMatch::ClassifyOp_match< LHS_P, Test_P, Opcode >::match(), llvm::MIPatternMatch::CompareOp_match< Pred_P, LHS_P, RHS_P, Opcode, Commutable >::match(), llvm::MIPatternMatch::GFrameIndexMatch::match(), llvm::MIPatternMatch::GInstrBind< Class >::match(), llvm::MIPatternMatch::GIntrinsic_match< IntrID, OpMatchers >::match(), llvm::MIPatternMatch::ImplicitDefMatch::match(), llvm::MIPatternMatch::LoadOp_match< Class, PtrP >::match(), llvm::MIPatternMatch::ShuffleVectorMatch< Src1Ty, Src2Ty >::match(), llvm::MIPatternMatch::SrcImmOp_match< SrcTy, ImmTy, Opcode >::match(), llvm::MIPatternMatch::TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, Opcode >::match(), llvm::MIPatternMatch::UnaryOp_match< SrcTy, Opcode >::match(), llvm::CombinerHelper::matchCombineConcatVectors(), llvm::CombinerHelper::matchCombineFAddFMAFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFSubFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCommuteConstantToRHS(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchPtrAddZero(), llvm::CombinerHelper::matchReassocPtrAdd(), llvm::CombinerHelper::matchSDivOrSRemByConst(), llvm::CombinerHelper::matchShiftImmedChain(), llvm::CombinerHelper::matchShiftOfShiftedLogic(), llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::CombinerHelper::matchUDivOrURemByConst(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), and llvm::CombinerHelper::tryReassocBinOp().
|
inline |
Definition at line 500 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCombineLoadWithAndMask(), and llvm::CombinerHelper::matchSextInRegOfLoad().
|
inline |
Matches a register negated by a G_SUB.
G_SUB 0, negated_reg
Definition at line 1269 of file MIPatternMatch.h.
References m_GSub(), and m_ZeroInt().
Referenced by canonicalizeSaturatedSubtractSigned(), combineAddSubWithShlAddSub(), combineAndXorSubWithBMI(), combineLogicBlendIntoConditionalNegate(), llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(), foldAbsDiff(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), foldICmpPow2Test(), foldICmpXNegX(), FoldOrOfSelectSmaxToAbs(), llvm::InstCombinerImpl::foldSelectShuffle(), llvm::InstCombiner::getComplexity(), getKnownBitsFromAndXorOr(), getRangeForSelectPattern(), llvm::isKnownNegation(), llvm::isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isMaskOrZero(), isNeg(), LinearizeExprTree(), matchAddCC(), matchSelectPattern(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchSimplifyNegMinMax(), NegateValue(), setLimitsForBinOp(), ShouldBreakUpSubtract(), llvm::X86TargetLowering::shouldFoldSelectWithIdentityConstant(), simplifyAndCommutative(), simplifyGEPInst(), simplifyICmpWithBinOp(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), simplifySelectWithICmpCond(), tryToRecognizeTableBasedCttz(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitAtomicRMWInst(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), and llvm::InstCombinerImpl::visitSub().
|
inline |
Matches a register not-ed by a G_XOR.
G_XOR not_reg, -1
Definition at line 1277 of file MIPatternMatch.h.
References m_AllOnesInt(), and m_GXor().
Referenced by BitOp3_Op(), canonicalizeSaturatedAddUnsigned(), canShiftBinOpWithConstantRHS(), collectComplementaryPredicatedMemOps(), combineAndNotOrIntoAndNotAnd(), combineMaskBitOp(), combineShiftRightLogical(), computeKnownBitsFromCond(), llvm::computeKnownBitsFromContext(), computeKnownFPClassFromCond(), decompose(), llvm::decomposeBitTest(), dropRedundantMaskingOfLeftShiftInput(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleBitChange(), llvm::findValuesAffectedByCondition(), llvm::InstCombinerImpl::foldAddWithConstant(), foldAndToXor(), llvm::InstCombinerImpl::foldBinOpOfSelectAndCastOfSelectCondition(), foldComplexAndOrPatterns(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpAndConstant(), foldICmpWithHighBitMask(), foldMaskedMerge(), foldMulShl1(), foldNotXor(), llvm::InstCombinerImpl::FoldOrOfLogicalAnds(), foldOrToXor(), foldSubCtlzNot(), foldToUnsignedSaturatedAdd(), foldXorToXor(), llvm::InstCombiner::getComplexity(), llvm::InstCombiner::getFreelyInvertedImpl(), getNotValue(), llvm::AMDGPUTargetMachine::getPredicatedAddrSpace(), llvm::vputils::getSCEVExprForVPValue(), haveNoCommonBitsSetSpecialCases(), llvm::invertCondition(), llvm::isCheckForZeroAndMulWithOverflow(), llvm::isImpliedCondition(), llvm::isImpliedCondition(), isMaskOrZero(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::X86TTIImpl::isProfitableToSinkOperands(), matchDeMorgansLaws(), matchMinMaxOfMinMax(), matchSelectWithOptionalNotCond(), narrowBitOpRMW(), OptimizeAndOrXor(), performANDORDUPNOTCombine(), reverseZExtICmpCombine(), simplifyAddInst(), simplifyAndCommutative(), simplifyBlends(), simplifyBranchConditionForVFAndUF(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyICmpOfBools(), simplifyLogicalRecipe(), simplifyOrLogic(), simplifyRecipe(), simplifySelectInst(), simplifyXorInst(), llvm::InstCombinerImpl::sinkNotIntoLogicalOp(), llvm::InstCombinerImpl::sinkNotIntoOtherHandOfLogicalOp(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitCondBrInst(), llvm::InstCombinerImpl::visitICmpInst(), llvm::InstCombinerImpl::visitLShr(), visitMaskedMerge(), llvm::InstCombinerImpl::visitOr(), visitORCommutative(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Definition at line 72 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::matchCommuteShift(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), and llvm::CombinerHelper::matchSimplifySelectToMinMax().
|
inline |
Definition at line 58 of file MIPatternMatch.h.
Referenced by llvm::canConvertToMinOrMaxIntrinsic(), canonicalizeAbs(), canonicalizeBitCastExtElt(), llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(), canonicalizeInsertSplat(), canonicalizeLogicFirst(), canonicalizeLowbitMask(), llvm::canPeelLastIteration(), cheapToScalarize(), combineAdd(), combineAddMulh(), combineAddSubWithShlAddSub(), combineAnd(), combineAndNotOrIntoAndNotAnd(), combineAndXorSubWithBMI(), combineBTToBitOpFlag(), combineCastedMaskArithmetic(), combineMaskBitOp(), combineNarrowableShiftedLoad(), combineOrAndToBitfieldInsert(), combineOrToBitfieldInsert(), combineOrWithGF2P8AFFINEQB(), combineSetCC(), combineShiftOfLogicOp(), combineShiftToPMULH(), combineShlAddIAddImpl(), combineStore(), combineVectorInsert(), combineXorToBitfieldInsert(), combineXorWithGF2P8AFFINEQB(), combineXorWithTwoGF2P8AFFINEQB(), llvm::InstCombinerImpl::commonCastTransforms(), llvm::InstCombinerImpl::commonIDivTransforms(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::InstCombinerImpl::convertOrOfShiftsToFunnelShift(), dominatesMergePoint(), factorizeLerp(), llvm::SelectionDAGBuilder::FindMergedConditions(), llvm::InstCombinerImpl::foldAddWithConstant(), foldAndOrOfICmpsWithPow2AndWithZero(), foldAnyOrAllBitsSet(), llvm::InstCombinerImpl::foldBinOpShiftWithShift(), foldBitCastBitwiseLogic(), foldBitCastSelect(), foldBitOrderCrossLogicOp(), foldBoxMultiply(), foldComplexAndOrPatterns(), foldCtpop(), foldCttzCtlz(), llvm::InstCombinerImpl::foldDivCeil(), llvm::InstCombinerImpl::foldFMulReassoc(), foldFNegIntoConstant(), foldFPtoI(), foldGuardedFunnelShift(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpAndConstConst(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpInstWithConstant(), foldICmpOfVectorReduce(), foldICmpOrXorSubChain(), foldICmpPow2Test(), llvm::InstCombinerImpl::foldICmpTruncWithTruncOrExt(), llvm::InstCombinerImpl::foldICmpUsingBoolRange(), llvm::InstCombinerImpl::foldICmpWithClamp(), foldICmpWithHighBitMask(), foldICmpWithLowBitMaskedVal(), llvm::InstCombinerImpl::foldICmpWithTrunc(), foldICmpWithTruncSignExtendedVal(), foldICmpXNegX(), llvm::InstCombinerImpl::foldICmpXorShiftConst(), llvm::InstCombinerImpl::foldIRemByPowerOfTwoToBitTest(), llvm::InstCombinerImpl::foldIsMultipleOfAPowerOfTwo(), foldLoadsRecursive(), foldLogicCastConstant(), foldMaskedAddXorPattern(), foldMinimumOverTrailingOrLeadingZeroCount(), foldMulHigh(), foldMulSelectToNegate(), foldMulShl1(), llvm::InstCombinerImpl::foldMultiplicationOverflowCheck(), foldNotXor(), foldNoWrapAdd(), FoldOrOfSelectSmaxToAbs(), foldOrUnsignedUMulOverflowICmp(), llvm::InstCombinerImpl::foldPowiReassoc(), llvm::InstCombinerImpl::foldPtrToIntOrAddrOfGEP(), foldReductionIdiom(), foldSelectICmpAndAnd(), foldSelectSplitCTLZ(), foldSelectSplitCTTZ(), foldSetClearBits(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::InstCombinerImpl::foldShuffledIntrinsicOperands(), foldSpliceBinOp(), foldSubOfMinMax(), llvm::InstCombinerImpl::foldVariableSignZeroExtensionOfVariableHighBitExtract(), foldVecExtTruncToExtElt(), llvm::InstCombinerImpl::foldVectorBinop(), foldVectorCmp(), getNegatibleInsts(), llvm::LoopVectorizationCostModel::getReductionPatternCost(), llvm::X86TTIImpl::getShuffleCost(), slpvectorizer::BoUpSLP::getTreeCost(), hoistMinMax(), hoistSubAddAssociation(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVELast(), instCombineSVEOrr(), instCombineSVEUMin(), llvm::RecurrenceDescriptor::isAnyOfPattern(), llvm::RecurrenceDescriptor::isConditionalRdxPattern(), isFMulAddCandidate(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), matchAddCC(), matchAndCC(), llvm::CombinerHelper::matchCtls(), matchDeMorgansLaws(), matchesSquareSum(), matchFPExtFromF16(), matchIntPart(), matchOrCC(), matchOrConcat(), llvm::CombinerHelper::matchSimplifyNegMinMax(), matchSubCC(), matchXorCC(), matchZExtedSubInteger(), moveAddAfterMinMax(), narrowUDivURem(), narrowVectorSelect(), optimizeSymmetricCall(), llvm::RISCVTargetLowering::PerformDAGCombine(), performMINMAXCombine(), performVEXT_VLCombine(), performVP_STORECombine(), reassociateForUses(), reassociateMinMaxWithConstantInOperand(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), reverseZExtICmpCombine(), ShouldBreakUpDistribution(), shouldCanonicalizeGEPToPtrAdd(), shrinkInsertElt(), shrinkSplatShuffle(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), llvm::simplifyInstruction(), simplifyLogicalRecipe(), simplifyShiftSelectingPackedElement(), simplifyValueKnownNonZero(), splitMergedValStore(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), tryToFPToSat(), tryToRecognizePopCount2n3(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitCondBrInst(), llvm::InstCombinerImpl::visitFAdd(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitFNeg(), llvm::InstCombinerImpl::visitFSub(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitInsertElementInst(), llvm::InstCombinerImpl::visitIntToPtr(), llvm::InstCombinerImpl::visitLShr(), visitMaskedMerge(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitPtrToAddr(), llvm::InstCombinerImpl::visitPtrToInt(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitSRem(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitTrunc(), llvm::InstCombinerImpl::visitUDiv(), llvm::InstCombinerImpl::visitXor(), and llvm::InstCombinerImpl::visitZExt().
|
inline |
Matches a floating-point positive zero.
Definition at line 208 of file MIPatternMatch.h.
References GFCstPredMatch().
Referenced by foldSqrtWithFcmpZero(), simplifyAndOrOfFCmps(), simplifyFAddInst(), simplifyFRemInst(), simplifyFSubInst(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitFCmpInst().
|
inline |
Definition at line 482 of file MIPatternMatch.h.
Referenced by getOperandsForBranch(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchSelectIMinMax(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
|
inline |
Definition at line 481 of file MIPatternMatch.h.
References P.
|
inline |
Definition at line 363 of file MIPatternMatch.h.
Referenced by llvm::AMDGPUCombinerHelper::applyFoldableFneg(), BitOp3_Op(), llvm::AArch64GISelUtils::extractPtrauthBlendDiscriminators(), getBaseWithConstantOffset(), llvm::AMDGPU::getBaseWithConstantOffset(), getOperandsForBranch(), llvm::GISelAddressing::getPointerInfo(), AMDGPURegBankLegalizeCombiner::getReadAnyLaneSrcs(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), isAbsoluteValueULEOne(), llvm::GIMatchTableExecutor::isBaseWithConstantOffset(), isExtractHiElt(), isFPExtFromF16OrConst(), isLaneMaskFromSameBlock(), isLshrHalf(), isShlHalf(), llvm::CombinerHelper::matchAddSubSameReg(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchCombineFAddFMAFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchCtls(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::CombinerHelper::matchFoldAMinusC1MinusC2(), llvm::CombinerHelper::matchFoldAMinusC1PlusC2(), llvm::CombinerHelper::matchFoldAPlusC1MinusC2(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), llvm::CombinerHelper::matchFoldC1Minus2MinusC2(), llvm::CombinerHelper::matchFoldC2MinusAPlusC1(), matchLDPSTPAddrMode(), llvm::SPIRVCombinerHelper::matchLengthToDistance(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchMulOfVScale(), llvm::CombinerHelper::matchNonNegZext(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchOverlappingAnd(), llvm::CombinerHelper::matchPtrAddImmedChain(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchRedundantNegOperands(), llvm::CombinerHelper::matchSelectIMinMax(), llvm::SPIRVCombinerHelper::matchSelectToFaceForward(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchShlOfVScale(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::CombinerHelper::matchSimplifySelectToMinMax(), llvm::CombinerHelper::matchSubAddSameReg(), llvm::CombinerHelper::matchSubOfVScale(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), llvm::CombinerHelper::matchTruncSSatS(), llvm::CombinerHelper::matchTruncSSatU(), llvm::CombinerHelper::matchTruncUSatU(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::CombinerHelper::matchXorOfAndWithSameReg(), peekThroughBitcast(), selectWMMAModsNegAbs(), stripBitCast(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), AMDGPURegBankLegalizeCombiner::tryEliminateReadAnyLane(), and AMDGPURegBankLegalizeCombiner::tryMatchMergeReadAnyLane().
Definition at line 475 of file MIPatternMatch.h.
|
inline |
Matches a constant equal to RequestedValue.
Definition at line 232 of file MIPatternMatch.h.
Referenced by isExtractHiElt(), llvm::CombinerHelper::matchCtls(), and llvm::CombinerHelper::matchICmpToLHSKnownBits().
|
inline |
Definition at line 236 of file MIPatternMatch.h.
|
inline |
Matches a RequestedValue constant or a constant splat of RequestedValue.
Definition at line 319 of file MIPatternMatch.h.
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::CombinerHelper::matchAddEToAddO(), llvm::CombinerHelper::matchMulOBy0(), llvm::CombinerHelper::matchMulOBy2(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchSubAddSameReg(), llvm::CombinerHelper::matchTruncSSatS(), llvm::CombinerHelper::matchTruncSSatU(), and llvm::CombinerHelper::matchTruncUSatU().
|
inline |
Definition at line 324 of file MIPatternMatch.h.
|
inline |
Matches a constant splat of RequestedValue.
Definition at line 286 of file MIPatternMatch.h.
|
inline |
Definition at line 290 of file MIPatternMatch.h.
|
inline |
Matches an immediate operand equal to RequestedValue.
Definition at line 247 of file MIPatternMatch.h.
|
inline |
Matches a register only if it is equal to RequestedReg.
Definition at line 347 of file MIPatternMatch.h.
Referenced by getLegalRegBank(), and llvm::SPIRVCombinerHelper::matchSelectToFaceForward().
Definition at line 1227 of file MIPatternMatch.h.
Referenced by foldBitCastBitwiseLogic(), foldBitCastSelect(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineZextTrunc(), tryCombineFromSVBoolBinOp(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitFPTrunc(), llvm::InstCombinerImpl::visitPtrToAddr(), llvm::InstCombinerImpl::visitPtrToInt(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitTrunc(), and llvm::InstCombinerImpl::visitZExt().
Definition at line 480 of file MIPatternMatch.h.
|
inline |
Convenience matchers for specific integer values.
Definition at line 330 of file MIPatternMatch.h.
References llvm::APInt::getZero().
Referenced by llvm::AMDGPURegisterBankInfo::applyMappingMAD_64_32(), BitOp3_Op(), foldGuardedFunnelShift(), foldICmpOfUAddOv(), foldICmpOfVectorReduce(), foldICmpPow2Test(), foldInsEltIntoSplat(), foldIsPowerOf2(), foldIsPowerOf2OrZero(), FoldOrOfSelectSmaxToAbs(), foldSelectSplitCTLZCTTZ(), foldSubOfMinMax(), getAlternateBinop(), llvm::vputils::getGEPFlagsForPtr(), llvm::getSplatValue(), llvm::VPWidenIntOrFpInductionRecipe::isCanonical(), isKnownMonotonic(), llvm::AArch64TTIImpl::isProfitableToSinkOperands(), llvm::ARMTTIImpl::isProfitableToSinkOperands(), llvm::RISCVTTIImpl::isProfitableToSinkOperands(), llvm::WebAssemblyTTIImpl::isProfitableToSinkOperands(), llvm::X86TTIImpl::isProfitableToSinkOperands(), m_Neg(), matchAndCC(), matchOrCC(), matchSelectPattern(), matchSignedNewValueCC(), matchUAddWithOverflowConstantEdgeCases(), processLaneForReplicateRegion(), reduceToAnyAllTrue(), simplifyAndOrOfICmpsWithCtpop(), simplifyBranchConditionForVFAndUF(), simplifyLogicalRecipe(), simplifyRecipe(), simplifySelectInst(), simplifySVEIntrinsic(), simplifySVEIntrinsicCompare(), simplifyX86addcarry(), tryToMatchAndCreateMulAccumulateReduction(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitOr(), and llvm::InstCombinerImpl::visitSub().
|
inline |
Definition at line 81 of file MIPatternMatch.h.
References llvm::getIConstantVRegVal(), and Reg.
|
inline |
Definition at line 87 of file MIPatternMatch.h.
References llvm::getIConstantVRegSExtVal(), and Reg.
|
inline |
|
inline |
Definition at line 116 of file MIPatternMatch.h.
References llvm::getIConstantSplatVal(), and Reg.
|
inline |
Definition at line 123 of file MIPatternMatch.h.
References llvm::getIConstantSplatSExtVal(), and Reg.
|
inline |
Referenced by llvm::MIPatternMatch::ICstOrSplatMatch< ConstT >::match().
|
nodiscard |
Definition at line 42 of file MIPatternMatch.h.
|
nodiscard |
Definition at line 36 of file MIPatternMatch.h.
|
nodiscard |
Definition at line 30 of file MIPatternMatch.h.
Referenced by llvm::CombinerHelper::applyExtendThroughPhis(), llvm::AMDGPUCombinerHelper::applyFoldableFneg(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingMAD_64_32(), BitOp3_Op(), clampVectorIndex(), llvm::AArch64GISelUtils::extractPtrauthBlendDiscriminators(), getBaseWithConstantOffset(), llvm::AMDGPU::getBaseWithConstantOffset(), getLegalRegBank(), getOperandsForBranch(), llvm::GISelAddressing::getPointerInfo(), AMDGPURegBankLegalizeCombiner::getReadAnyLaneSrcs(), getTruncStoreByteOffset(), llvm::GISelAddressing::instMayAlias(), isAbsoluteValueULEOne(), llvm::GIMatchTableExecutor::isBaseWithConstantOffset(), llvm::SITargetLowering::isCanonicalized(), isConstantCostlierToNegate(), isExtractHiElt(), isFPExtFromF16OrConst(), isLaneMaskFromSameBlock(), isLshrHalf(), llvm::LegalizationArtifactCombiner::ArtifactValueFinder::isSequenceFromUnmerge(), isShlHalf(), llvm::LegalizerHelper::lowerExtractInsertVectorElt(), llvm::LegalizerHelper::lowerVECTOR_COMPRESS(), llvm::MIPatternMatch::AllOnesConstantMatch::match(), llvm::MIPatternMatch::BinaryOp_match< LHS_P, RHS_P, Opcode, Commutable, Flags >::match(), llvm::MIPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable >::match(), llvm::MIPatternMatch::ClassifyOp_match< LHS_P, Test_P, Opcode >::match(), llvm::MIPatternMatch::CompareOp_match< Pred_P, LHS_P, RHS_P, Opcode, Commutable >::match(), llvm::MIPatternMatch::GFrameIndexMatch::match(), llvm::MIPatternMatch::GInstrBind< Class >::match(), llvm::MIPatternMatch::GIntrinsic_match< IntrID, OpMatchers >::match(), llvm::MIPatternMatch::ImplicitDefMatch::match(), llvm::MIPatternMatch::LoadOp_match< Class, PtrP >::match(), llvm::MIPatternMatch::ShuffleVectorMatch< Src1Ty, Src2Ty >::match(), llvm::MIPatternMatch::SpecificConstantMatch::match(), llvm::MIPatternMatch::SpecificConstantOrSplatMatch::match(), llvm::MIPatternMatch::SrcImmOp_match< SrcTy, ImmTy, Opcode >::match(), llvm::MIPatternMatch::TernaryOp_match< Src0Ty, Src1Ty, Src2Ty, Opcode >::match(), llvm::MIPatternMatch::UnaryOp_match< SrcTy, Opcode >::match(), llvm::CombinerHelper::matchAddEToAddO(), llvm::CombinerHelper::matchAddOfVScale(), llvm::CombinerHelper::matchAddSubSameReg(), llvm::CombinerHelper::matchAndOrDisjointMask(), llvm::CombinerHelper::matchAshrShlToSextInreg(), llvm::CombinerHelper::matchBuildVectorIdentityFold(), llvm::CombinerHelper::matchCombineAddP2IToPtrAdd(), llvm::CombinerHelper::matchCombineAnyExtTrunc(), llvm::CombinerHelper::matchCombineBuildVectorOfBitcast(), llvm::CombinerHelper::matchCombineConcatVectors(), llvm::CombinerHelper::matchCombineConstPtrAddToI2P(), llvm::CombinerHelper::matchCombineFAddFMAFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFAddFpExtFMulToFMadOrFMAAggressive(), llvm::CombinerHelper::matchCombineFSubFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineFSubFpExtFNegFMulToFMadOrFMA(), llvm::CombinerHelper::matchCombineI2PToP2I(), llvm::CombinerHelper::matchCombineInsertVecElts(), llvm::CombinerHelper::matchCombineLoadWithAndMask(), llvm::CombinerHelper::matchCombineShlOfExtend(), llvm::CombinerHelper::matchCombineShuffleConcat(), llvm::CombinerHelper::matchCombineUnmergeConstant(), llvm::CombinerHelper::matchCombineUnmergeUndef(), llvm::CombinerHelper::matchCombineUnmergeZExtToZExt(), llvm::CombinerHelper::matchCombineZextTrunc(), llvm::CombinerHelper::matchCommuteConstantToRHS(), llvm::CombinerHelper::matchCommuteFPConstantToRHS(), llvm::CombinerHelper::matchCommuteShift(), llvm::CombinerHelper::matchConstantFPOp(), llvm::CombinerHelper::matchCtls(), llvm::CombinerHelper::matchExtractVecEltBuildVec(), llvm::CombinerHelper::matchFoldAMinusC1MinusC2(), llvm::CombinerHelper::matchFoldAMinusC1PlusC2(), llvm::CombinerHelper::matchFoldAPlusC1MinusC2(), llvm::CombinerHelper::matchFoldBinOpIntoSelect(), llvm::CombinerHelper::matchFoldC1Minus2MinusC2(), llvm::CombinerHelper::matchFoldC2MinusAPlusC1(), llvm::CombinerHelper::matchFreezeOfSingleMaybePoisonOperand(), llvm::CombinerHelper::matchICmpToLHSKnownBits(), matchLDPSTPAddrMode(), llvm::SPIRVCombinerHelper::matchLengthToDistance(), matchLoadAndBytePosition(), llvm::CombinerHelper::matchLshrOfTruncOfLshr(), llvm::CombinerHelper::matchMulOBy0(), llvm::CombinerHelper::matchMulOBy2(), llvm::CombinerHelper::matchMulOfVScale(), llvm::CombinerHelper::matchNonNegZext(), llvm::CombinerHelper::matchNotCmp(), llvm::CombinerHelper::matchOrShiftToFunnelShift(), llvm::CombinerHelper::matchOverlappingAnd(), llvm::CombinerHelper::matchPtrAddImmedChain(), llvm::CombinerHelper::matchPtrAddZero(), llvm::CombinerHelper::matchReassocConstantInnerLHS(), llvm::CombinerHelper::matchReassocPtrAdd(), llvm::CombinerHelper::matchRedundantBinOpInEquality(), llvm::CombinerHelper::matchRedundantNegOperands(), llvm::CombinerHelper::matchSDivOrSRemByConst(), llvm::CombinerHelper::matchSelectIMinMax(), llvm::SPIRVCombinerHelper::matchSelectToFaceForward(), llvm::CombinerHelper::matchSextInRegOfLoad(), llvm::CombinerHelper::matchSextTruncSextLoad(), llvm::CombinerHelper::matchShiftImmedChain(), llvm::CombinerHelper::matchShiftOfShiftedLogic(), llvm::CombinerHelper::matchShlOfVScale(), llvm::CombinerHelper::matchSimplifyAddToSub(), llvm::CombinerHelper::matchSimplifyNegMinMax(), llvm::CombinerHelper::matchSimplifySelectToMinMax(), llvm::CombinerHelper::matchSubAddSameReg(), llvm::CombinerHelper::matchSubOfVScale(), llvm::CombinerHelper::matchTruncBuildVectorFold(), llvm::CombinerHelper::matchTruncLshrBuildVectorFold(), llvm::CombinerHelper::matchTruncSSatS(), llvm::CombinerHelper::matchTruncSSatU(), llvm::CombinerHelper::matchTruncUSatU(), llvm::CombinerHelper::matchUDivOrURemByConst(), llvm::CombinerHelper::matchUnmergeValuesAnyExtBuildVector(), llvm::CombinerHelper::matchUseVectorTruncate(), llvm::CombinerHelper::matchXorOfAndWithSameReg(), peekThroughBitcast(), selectWMMAModsNegAbs(), stripBitCast(), llvm::LegalizationArtifactCombiner::tryCombineAnyExt(), llvm::LegalizationArtifactCombiner::tryCombineSExt(), llvm::LegalizationArtifactCombiner::tryCombineTrunc(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), AMDGPURegBankLegalizeCombiner::tryEliminateReadAnyLane(), AMDGPURegBankLegalizeCombiner::tryMatchMergeReadAnyLane(), and llvm::CombinerHelper::tryReassocBinOp().