|
template<typename Op0_t , unsigned Opcode, typename... RecipeTys> |
using | UnaryRecipe_match = Recipe_match< std::tuple< Op0_t >, Opcode, false, RecipeTys... > |
|
template<typename Op0_t , unsigned Opcode> |
using | UnaryVPInstruction_match = UnaryRecipe_match< Op0_t, Opcode, VPInstruction > |
|
template<typename Op0_t , unsigned Opcode> |
using | 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 | BinaryRecipe_match = Recipe_match< std::tuple< Op0_t, Op1_t >, Opcode, Commutative, RecipeTys... > |
|
template<typename Op0_t , typename Op1_t , unsigned Opcode> |
using | BinaryVPInstruction_match = BinaryRecipe_match< Op0_t, Op1_t, Opcode, false, VPInstruction > |
|
template<typename Op0_t , typename Op1_t , unsigned Opcode, bool Commutative = false> |
using | 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 | AllTernaryRecipe_match = Recipe_match< std::tuple< Op0_t, Op1_t, Op2_t >, Opcode, false, VPReplicateRecipe, VPInstruction, VPWidenSelectRecipe > |
|
using | VPCanonicalIVPHI_match = Recipe_match< std::tuple<>, 0, false, VPCanonicalIVPHIRecipe > |
|
template<typename Op0_t , typename Op1_t > |
using | VPScalarIVSteps_match = Recipe_match< std::tuple< Op0_t, Op1_t >, 0, false, VPScalarIVStepsRecipe > |
|
|
template<typename Val , typename Pattern > |
bool | match (Val *V, const Pattern &P) |
|
template<typename Pattern > |
bool | match (VPUser *U, const Pattern &P) |
|
class_match< VPValue > | m_VPValue () |
| Match an arbitrary VPValue and ignore it.
|
|
specificval_ty | m_Specific (const VPValue *VPV) |
|
specific_intval< 0 > | m_SpecificInt (uint64_t V) |
|
specific_intval< 1 > | m_False () |
|
specific_intval< 1 > | m_True () |
|
template<typename LTy , typename RTy > |
match_combine_or< LTy, RTy > | m_CombineOr (const LTy &L, const RTy &R) |
|
bind_ty< VPValue > | m_VPValue (VPValue *&V) |
| Match a VPValue, capturing it if we match.
|
|
template<unsigned Opcode, typename Op0_t > |
UnaryVPInstruction_match< Op0_t, Opcode > | m_VPInstruction (const Op0_t &Op0) |
|
template<unsigned Opcode, typename Op0_t , typename Op1_t > |
BinaryVPInstruction_match< Op0_t, Op1_t, Opcode > | m_VPInstruction (const Op0_t &Op0, const Op1_t &Op1) |
|
template<typename Op0_t > |
UnaryVPInstruction_match< Op0_t, VPInstruction::Not > | m_Not (const Op0_t &Op0) |
|
template<typename Op0_t > |
UnaryVPInstruction_match< Op0_t, VPInstruction::BranchOnCond > | m_BranchOnCond (const Op0_t &Op0) |
|
template<typename Op0_t , typename Op1_t > |
BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::ActiveLaneMask > | 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 > | m_BranchOnCount (const Op0_t &Op0, const Op1_t &Op1) |
|
template<unsigned Opcode, typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Opcode > | m_Unary (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Instruction::Trunc > | m_Trunc (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Instruction::ZExt > | m_ZExt (const Op0_t &Op0) |
|
template<typename Op0_t > |
AllUnaryRecipe_match< Op0_t, Instruction::SExt > | 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 > > | 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 > | 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 > | 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 > | 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 > | 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 > | 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 > | 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 > > | 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 > | m_LogicalOr (const Op0_t &Op0, const Op1_t &Op1) |
|
VPCanonicalIVPHI_match | m_CanonicalIV () |
|
template<typename Op0_t , typename Op1_t > |
VPScalarIVSteps_match< Op0_t, Op1_t > | m_ScalarIVSteps (const Op0_t &Op0, const Op1_t &Op1) |
|