Lines Matching refs:Opcode
112 template <unsigned Opcode, typename...> struct MatchRecipeAndOpcode {};
114 template <unsigned Opcode, typename RecipeTy>
115 struct MatchRecipeAndOpcode<Opcode, RecipeTy> {
118 return DefR && DefR->getOpcode() == Opcode;
122 template <unsigned Opcode, typename RecipeTy, typename... RecipeTys>
123 struct MatchRecipeAndOpcode<Opcode, RecipeTy, RecipeTys...> {
125 return MatchRecipeAndOpcode<Opcode, RecipeTy>::match(R) ||
126 MatchRecipeAndOpcode<Opcode, RecipeTys...>::match(R);
131 template <typename Op0_t, unsigned Opcode, typename... RecipeTys>
143 if (!detail::MatchRecipeAndOpcode<Opcode, RecipeTys...>::match(R))
151 template <typename Op0_t, unsigned Opcode>
153 UnaryRecipe_match<Op0_t, Opcode, VPInstruction>;
155 template <typename Op0_t, unsigned Opcode>
157 UnaryRecipe_match<Op0_t, Opcode, VPWidenRecipe, VPReplicateRecipe,
160 template <typename Op0_t, typename Op1_t, unsigned Opcode, bool Commutative,
178 if (!detail::MatchRecipeAndOpcode<Opcode, RecipeTys...>::match(R))
189 template <typename Op0_t, typename Op1_t, unsigned Opcode>
191 BinaryRecipe_match<Op0_t, Op1_t, Opcode, /*Commutative*/ false,
194 template <typename Op0_t, typename Op1_t, unsigned Opcode,
197 BinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe,
200 template <unsigned Opcode, typename Op0_t>
201 inline UnaryVPInstruction_match<Op0_t, Opcode>
203 return UnaryVPInstruction_match<Op0_t, Opcode>(Op0);
206 template <unsigned Opcode, typename Op0_t, typename Op1_t>
207 inline BinaryVPInstruction_match<Op0_t, Op1_t, Opcode>
209 return BinaryVPInstruction_match<Op0_t, Op1_t, Opcode>(Op0, Op1);
236 template <unsigned Opcode, typename Op0_t>
237 inline AllUnaryRecipe_match<Op0_t, Opcode> m_Unary(const Op0_t &Op0) {
238 return AllUnaryRecipe_match<Op0_t, Opcode>(Op0);
264 template <unsigned Opcode, typename Op0_t, typename Op1_t,
266 inline AllBinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative>
268 return AllBinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative>(Op0, Op1);