|
template<typename Val , typename Pattern > |
bool | llvm::VPlanPatternMatch::match (Val *V, const Pattern &P) |
|
template<typename Pattern > |
bool | llvm::VPlanPatternMatch::match (VPUser *U, const Pattern &P) |
|
class_match< VPValue > | llvm::VPlanPatternMatch::m_VPValue () |
| Match an arbitrary VPValue and ignore it.
|
|
specificval_ty | llvm::VPlanPatternMatch::m_Specific (const VPValue *VPV) |
|
deferredval_ty | llvm::VPlanPatternMatch::m_Deferred (VPValue *const &V) |
| Like m_Specific(), but works if the specific value to match is determined as part of the same match() expression.
|
|
specific_intval< 0 > | llvm::VPlanPatternMatch::m_SpecificInt (uint64_t V) |
|
specific_intval< 1 > | llvm::VPlanPatternMatch::m_False () |
|
specific_intval< 1 > | llvm::VPlanPatternMatch::m_True () |
|
int_pred_ty< is_all_ones > | llvm::VPlanPatternMatch::m_AllOnes () |
| Match an integer or vector with all bits set.
|
|
int_pred_ty< is_zero_int > | llvm::VPlanPatternMatch::m_ZeroInt () |
| Match an integer 0 or a vector with all elements equal to 0.
|
|
template<typename LTy , typename RTy > |
match_combine_or< LTy, RTy > | llvm::VPlanPatternMatch::m_CombineOr (const LTy &L, const RTy &R) |
| Combine two pattern matchers matching L || R.
|
|
template<typename LTy , typename RTy > |
match_combine_and< LTy, RTy > | llvm::VPlanPatternMatch::m_CombineAnd (const LTy &L, const RTy &R) |
| Combine two pattern matchers matching L && R.
|
|
bind_ty< VPValue > | llvm::VPlanPatternMatch::m_VPValue (VPValue *&V) |
| Match a VPValue, capturing it if we match.
|
|
bind_ty< VPInstruction > | llvm::VPlanPatternMatch::m_VPInstruction (VPInstruction *&V) |
| Match a VPInstruction, capturing if we match.
|
|
template<unsigned Opcode, typename... OpTys> |
VPInstruction_match< Opcode, OpTys... > | llvm::VPlanPatternMatch::m_VPInstruction (const OpTys &...Ops) |
|
VPInstruction_match< VPInstruction::BuildVector > | llvm::VPlanPatternMatch::m_BuildVector () |
| BuildVector is matches only its opcode, w/o matching its operands as the number of operands is not fixed.
|
|
template<typename Op0_t > |
VPInstruction_match< Instruction::Freeze, Op0_t > | llvm::VPlanPatternMatch::m_Freeze (const Op0_t &Op0) |
|
template<typename Op0_t > |
VPInstruction_match< VPInstruction::BranchOnCond, Op0_t > | llvm::VPlanPatternMatch::m_BranchOnCond (const Op0_t &Op0) |
|
template<typename Op0_t > |
VPInstruction_match< VPInstruction::Broadcast, Op0_t > | llvm::VPlanPatternMatch::m_Broadcast (const Op0_t &Op0) |
|
template<typename Op0_t > |
VPInstruction_match< VPInstruction::ExplicitVectorLength, Op0_t > | llvm::VPlanPatternMatch::m_EVL (const Op0_t &Op0) |
|
template<typename Op0_t > |
VPInstruction_match< VPInstruction::ExtractLastElement, Op0_t > | llvm::VPlanPatternMatch::m_ExtractLastElement (const Op0_t &Op0) |
|
template<typename Op0_t , typename Op1_t > |
VPInstruction_match< VPInstruction::ActiveLaneMask, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_ActiveLaneMask (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
VPInstruction_match< VPInstruction::BranchOnCount, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_BranchOnCount (const Op0_t &Op0, const Op1_t &Op1) |
|
template<unsigned Opcode, typename Op0_t > |
AllRecipe_match< Opcode, Op0_t > | llvm::VPlanPatternMatch::m_Unary (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllRecipe_match< Instruction::Trunc, Op0_t > | llvm::VPlanPatternMatch::m_Trunc (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllRecipe_match< Instruction::ZExt, Op0_t > | llvm::VPlanPatternMatch::m_ZExt (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllRecipe_match< Instruction::SExt, Op0_t > | llvm::VPlanPatternMatch::m_SExt (const Op0_t &Op0) |
|
template<typename Op0_t > |
match_combine_or< AllRecipe_match< Instruction::ZExt, Op0_t >, AllRecipe_match< Instruction::SExt, Op0_t > > | llvm::VPlanPatternMatch::m_ZExtOrSExt (const Op0_t &Op0) |
|
template<typename Op0_t > |
match_combine_or< AllRecipe_match< Instruction::ZExt, Op0_t >, Op0_t > | llvm::VPlanPatternMatch::m_ZExtOrSelf (const Op0_t &Op0) |
|
template<unsigned Opcode, typename Op0_t , typename Op1_t > |
AllRecipe_match< Opcode, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_Binary (const Op0_t &Op0, const Op1_t &Op1) |
|
template<unsigned Opcode, typename Op0_t , typename Op1_t > |
AllRecipe_commutative_match< Opcode, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_c_Binary (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_commutative_match< Instruction::Add, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_c_Add (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_match< Instruction::Sub, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_Sub (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_match< Instruction::Mul, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_Mul (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_commutative_match< Instruction::Mul, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_c_Mul (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_commutative_match< Instruction::And, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_c_BinaryAnd (const Op0_t &Op0, const Op1_t &Op1) |
| Match a binary AND operation.
|
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_match< Instruction::Or, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
| Match a binary OR operation.
|
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_commutative_match< Instruction::Or, Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_c_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
Cmp_match< Op0_t, Op1_t, Instruction::ICmp > | llvm::VPlanPatternMatch::m_ICmp (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
Cmp_match< Op0_t, Op1_t, Instruction::ICmp > | llvm::VPlanPatternMatch::m_ICmp (CmpPredicate &Pred, const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
SpecificCmp_match< Op0_t, Op1_t, Instruction::ICmp > | llvm::VPlanPatternMatch::m_SpecificICmp (CmpPredicate MatchPred, const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
Cmp_match< Op0_t, Op1_t, Instruction::ICmp, Instruction::FCmp > | llvm::VPlanPatternMatch::m_Cmp (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
Cmp_match< Op0_t, Op1_t, Instruction::ICmp, Instruction::FCmp > | llvm::VPlanPatternMatch::m_Cmp (CmpPredicate &Pred, const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
SpecificCmp_match< Op0_t, Op1_t, Instruction::ICmp, Instruction::FCmp > | llvm::VPlanPatternMatch::m_SpecificCmp (CmpPredicate MatchPred, const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
GEPLikeRecipe_match< Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_GetElementPtr (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t , typename Op2_t > |
AllRecipe_match< Instruction::Select, Op0_t, Op1_t, Op2_t > | llvm::VPlanPatternMatch::m_Select (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
|
template<typename Op0_t > |
match_combine_or< VPInstruction_match< VPInstruction::Not, Op0_t >, AllRecipe_commutative_match< Instruction::Xor, int_pred_ty< is_all_ones >, Op0_t > > | llvm::VPlanPatternMatch::m_Not (const Op0_t &Op0) |
|
template<typename Op0_t , typename Op1_t > |
match_combine_or< VPInstruction_match< VPInstruction::LogicalAnd, Op0_t, Op1_t >, AllRecipe_match< Instruction::Select, Op0_t, Op1_t, specific_intval< 1 > > > | llvm::VPlanPatternMatch::m_LogicalAnd (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllRecipe_match< Instruction::Select, Op0_t, specific_intval< 1 >, Op1_t > | llvm::VPlanPatternMatch::m_LogicalOr (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t , typename Op2_t > |
VPScalarIVSteps_match< Op0_t, Op1_t, Op2_t > | llvm::VPlanPatternMatch::m_ScalarIVSteps (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
|
template<typename Op0_t , typename Op1_t , typename Op2_t > |
VPDerivedIV_match< Op0_t, Op1_t, Op2_t > | llvm::VPlanPatternMatch::m_DerivedIV (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
|
template<unsigned OpI, typename Opnd_t > |
Argument_match< Opnd_t > | llvm::VPlanPatternMatch::m_Argument (const Opnd_t &Op) |
| Match a call argument.
|
|
template<Intrinsic::ID IntrID> |
IntrinsicID_match | llvm::VPlanPatternMatch::m_Intrinsic () |
| Match intrinsic calls like this: m_Intrinsic<Intrinsic::fabs>(m_VPValue(X), ...)
|
|
template<Intrinsic::ID IntrID, typename T0 > |
m_Intrinsic_Ty< T0 >::Ty | llvm::VPlanPatternMatch::m_Intrinsic (const T0 &Op0) |
|
template<Intrinsic::ID IntrID, typename T0 , typename T1 > |
m_Intrinsic_Ty< T0, T1 >::Ty | llvm::VPlanPatternMatch::m_Intrinsic (const T0 &Op0, const T1 &Op1) |
|
template<Intrinsic::ID IntrID, typename T0 , typename T1 , typename T2 > |
m_Intrinsic_Ty< T0, T1, T2 >::Ty | llvm::VPlanPatternMatch::m_Intrinsic (const T0 &Op0, const T1 &Op1, const T2 &Op2) |
|
template<Intrinsic::ID IntrID, typename T0 , typename T1 , typename T2 , typename T3 > |
m_Intrinsic_Ty< T0, T1, T2, T3 >::Ty | llvm::VPlanPatternMatch::m_Intrinsic (const T0 &Op0, const T1 &Op1, const T2 &Op2, const T3 &Op3) |
|