|
template<typename Op0_t , unsigned Opcode, typename... RecipeTys> |
using | llvm::VPlanPatternMatch::UnaryRecipe_match = Recipe_match< std::tuple< Op0_t >, Opcode, false, RecipeTys... > |
|
template<typename Op0_t , unsigned Opcode> |
using | llvm::VPlanPatternMatch::UnaryVPInstruction_match = UnaryRecipe_match< Op0_t, Opcode, VPInstruction > |
|
template<typename Op0_t , unsigned Opcode> |
using | llvm::VPlanPatternMatch::AllUnaryRecipe_match = UnaryRecipe_match< Op0_t, Opcode, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction > |
|
template<typename Op0_t , typename Op1_t , unsigned Opcode, bool Commutative, typename... RecipeTys> |
using | llvm::VPlanPatternMatch::BinaryRecipe_match = Recipe_match< std::tuple< Op0_t, Op1_t >, Opcode, Commutative, RecipeTys... > |
|
template<typename Op0_t , typename Op1_t , unsigned Opcode> |
using | llvm::VPlanPatternMatch::BinaryVPInstruction_match = BinaryRecipe_match< Op0_t, Op1_t, Opcode, false, VPInstruction > |
|
template<typename Op0_t , typename Op1_t , unsigned Opcode, bool Commutative = false> |
using | llvm::VPlanPatternMatch::AllBinaryRecipe_match = BinaryRecipe_match< Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction > |
|
template<typename Op0_t , typename Op1_t , typename Op2_t , unsigned Opcode> |
using | llvm::VPlanPatternMatch::AllTernaryRecipe_match = Recipe_match< std::tuple< Op0_t, Op1_t, Op2_t >, Opcode, false, VPReplicateRecipe, VPInstruction, VPWidenSelectRecipe > |
|
using | llvm::VPlanPatternMatch::VPCanonicalIVPHI_match = Recipe_match< std::tuple<>, 0, false, VPCanonicalIVPHIRecipe > |
|
template<typename Op0_t , typename Op1_t > |
using | llvm::VPlanPatternMatch::VPScalarIVSteps_match = Recipe_match< std::tuple< Op0_t, Op1_t >, 0, false, VPScalarIVStepsRecipe > |
|
|
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) |
|
specific_intval< 0 > | llvm::VPlanPatternMatch::m_SpecificInt (uint64_t V) |
|
specific_intval< 1 > | llvm::VPlanPatternMatch::m_False () |
|
specific_intval< 1 > | llvm::VPlanPatternMatch::m_True () |
|
template<typename LTy , typename RTy > |
match_combine_or< LTy, RTy > | llvm::VPlanPatternMatch::m_CombineOr (const LTy &L, const RTy &R) |
|
bind_ty< VPValue > | llvm::VPlanPatternMatch::m_VPValue (VPValue *&V) |
| Match a VPValue, capturing it if we match.
|
|
template<typename TupleTy , typename Fn , std::size_t... Is> |
bool | llvm::VPlanPatternMatch::detail::CheckTupleElements (const TupleTy &Ops, Fn P, std::index_sequence< Is... >) |
|
template<typename TupleTy , typename Fn > |
bool | llvm::VPlanPatternMatch::detail::all_of_tuple_elements (const TupleTy &Ops, Fn P) |
| Helper to check if predicate P holds on all tuple elements in Ops .
|
|
template<unsigned Opcode, typename Op0_t > |
UnaryVPInstruction_match< Op0_t, Opcode > | llvm::VPlanPatternMatch::m_VPInstruction (const Op0_t &Op0) |
|
template<unsigned Opcode, typename Op0_t , typename Op1_t > |
BinaryVPInstruction_match< Op0_t, Op1_t, Opcode > | llvm::VPlanPatternMatch::m_VPInstruction (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t > |
UnaryVPInstruction_match< Op0_t, VPInstruction::Not > | llvm::VPlanPatternMatch::m_Not (const Op0_t &Op0) |
|
template<typename Op0_t > |
UnaryVPInstruction_match< Op0_t, VPInstruction::BranchOnCond > | llvm::VPlanPatternMatch::m_BranchOnCond (const Op0_t &Op0) |
|
template<typename Op0_t , typename Op1_t > |
BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::ActiveLaneMask > | llvm::VPlanPatternMatch::m_ActiveLaneMask (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::BranchOnCount > | llvm::VPlanPatternMatch::m_BranchOnCount (const Op0_t &Op0, const Op1_t &Op1) |
|
template<unsigned Opcode, typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Opcode > | llvm::VPlanPatternMatch::m_Unary (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Instruction::Trunc > | llvm::VPlanPatternMatch::m_Trunc (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Instruction::ZExt > | llvm::VPlanPatternMatch::m_ZExt (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Instruction::SExt > | llvm::VPlanPatternMatch::m_SExt (const Op0_t &Op0) |
|
template<typename Op0_t > |
match_combine_or< AllUnaryRecipe_match< Op0_t, Instruction::ZExt >, AllUnaryRecipe_match< Op0_t, Instruction::SExt > > | llvm::VPlanPatternMatch::m_ZExtOrSExt (const Op0_t &Op0) |
|
template<unsigned Opcode, typename Op0_t , typename Op1_t , bool Commutative = false> |
AllBinaryRecipe_match< Op0_t, Op1_t, Opcode, Commutative > | llvm::VPlanPatternMatch::m_Binary (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Mul > | llvm::VPlanPatternMatch::m_Mul (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Mul, true > | llvm::VPlanPatternMatch::m_c_Mul (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t , bool Commutative = false> |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Or, Commutative > | llvm::VPlanPatternMatch::m_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
| Match a binary OR operation.
|
|
template<typename Op0_t , typename Op1_t > |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Or, true > | llvm::VPlanPatternMatch::m_c_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t , typename Op2_t > |
AllTernaryRecipe_match< Op0_t, Op1_t, Op2_t, Instruction::Select > | llvm::VPlanPatternMatch::m_Select (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
|
template<typename Op0_t , typename Op1_t > |
match_combine_or< BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::LogicalAnd >, AllTernaryRecipe_match< Op0_t, Op1_t, specific_intval< 1 >, Instruction::Select > > | llvm::VPlanPatternMatch::m_LogicalAnd (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t , typename Op1_t > |
AllTernaryRecipe_match< Op0_t, specific_intval< 1 >, Op1_t, Instruction::Select > | llvm::VPlanPatternMatch::m_LogicalOr (const Op0_t &Op0, const Op1_t &Op1) |
|
VPCanonicalIVPHI_match | llvm::VPlanPatternMatch::m_CanonicalIV () |
|
template<typename Op0_t , typename Op1_t > |
VPScalarIVSteps_match< Op0_t, Op1_t > | llvm::VPlanPatternMatch::m_ScalarIVSteps (const Op0_t &Op0, const Op1_t &Op1) |
|