[llvm] [VPlan] Use parameter packs to avoid unary/binary/ternary matchers. NFC (PR #152272)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 7 00:51:50 PDT 2025


================
@@ -270,251 +265,177 @@ struct Recipe_match {
   }
 };
 
-template <unsigned Opcode, typename... RecipeTys>
-using ZeroOpRecipe_match =
-    Recipe_match<std::tuple<>, Opcode, false, RecipeTys...>;
-
-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 <unsigned Opcode, typename... OpTys>
+using AllRecipe_match =
----------------
david-arm wrote:

This is just a thought, but is it worth making this consistent with AllRecipe_commutative_match by renaming it to `AllRecipe_noncommutative_match`? I realise the naming scheme was already like that before your patch though. At the moment it sounds a bit like it's a superset that includes commutative matches too.

https://github.com/llvm/llvm-project/pull/152272


More information about the llvm-commits mailing list