Lines Matching refs:Opcode

132 template <unsigned Opcode, typename...> struct MatchRecipeAndOpcode {};
134 template <unsigned Opcode, typename RecipeTy>
135 struct MatchRecipeAndOpcode<Opcode, RecipeTy> {
146 return DefR && DefR->getOpcode() == Opcode;
150 template <unsigned Opcode, typename RecipeTy, typename... RecipeTys>
151 struct MatchRecipeAndOpcode<Opcode, RecipeTy, RecipeTys...> {
153 return MatchRecipeAndOpcode<Opcode, RecipeTy>::match(R) ||
154 MatchRecipeAndOpcode<Opcode, RecipeTys...>::match(R);
170 template <typename Ops_t, unsigned Opcode, bool Commutative,
196 if (!detail::MatchRecipeAndOpcode<Opcode, RecipeTys...>::match(R))
213 template <typename Op0_t, unsigned Opcode, typename... RecipeTys>
215 Recipe_match<std::tuple<Op0_t>, Opcode, false, RecipeTys...>;
217 template <typename Op0_t, unsigned Opcode>
219 UnaryRecipe_match<Op0_t, Opcode, VPInstruction>;
221 template <typename Op0_t, unsigned Opcode>
223 UnaryRecipe_match<Op0_t, Opcode, VPWidenRecipe, VPReplicateRecipe,
226 template <typename Op0_t, typename Op1_t, unsigned Opcode, bool Commutative,
229 Recipe_match<std::tuple<Op0_t, Op1_t>, Opcode, Commutative, RecipeTys...>;
231 template <typename Op0_t, typename Op1_t, unsigned Opcode>
233 BinaryRecipe_match<Op0_t, Op1_t, Opcode, /*Commutative*/ false,
236 template <typename Op0_t, typename Op1_t, unsigned Opcode,
239 BinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe,
242 template <unsigned Opcode, typename Op0_t>
243 inline UnaryVPInstruction_match<Op0_t, Opcode>
245 return UnaryVPInstruction_match<Op0_t, Opcode>(Op0);
248 template <unsigned Opcode, typename Op0_t, typename Op1_t>
249 inline BinaryVPInstruction_match<Op0_t, Op1_t, Opcode>
251 return BinaryVPInstruction_match<Op0_t, Op1_t, Opcode>(Op0, Op1);
278 template <unsigned Opcode, typename Op0_t>
279 inline AllUnaryRecipe_match<Op0_t, Opcode> m_Unary(const Op0_t &Op0) {
280 return AllUnaryRecipe_match<Op0_t, Opcode>(Op0);
306 template <unsigned Opcode, typename Op0_t, typename Op1_t,
308 inline AllBinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative>
310 return AllBinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative>(Op0, Op1);
313 template <unsigned Opcode, typename Op0_t, typename Op1_t>
314 inline AllBinaryRecipe_match<Op0_t, Op1_t, Opcode, true>
316 return AllBinaryRecipe_match<Op0_t, Op1_t, Opcode, true>(Op0, Op1);
361 template <typename Op0_t, typename Op1_t, typename Op2_t, unsigned Opcode>
363 Recipe_match<std::tuple<Op0_t, Op1_t, Op2_t>, Opcode, false,