@@ -178,11 +178,6 @@ struct Recipe_match {
178178 static_assert (std::tuple_size<Ops_t>::value == 2 &&
179179 " constructor can only be used for binary matcher" );
180180 }
181- template <typename A_t, typename B_t, typename C_t>
182- Recipe_match (A_t A, B_t B, C_t C) : Ops({A, B, C}) {
183- static_assert (std::tuple_size<Ops_t>::value == 3 &&
184- " constructor can only be used for ternary matcher" );
185- }
186181
187182 bool match (const VPValue *V) const {
188183 auto *DefR = V->getDefiningRecipe ();
@@ -240,16 +235,6 @@ using AllBinaryRecipe_match =
240235 BinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe,
241236 VPReplicateRecipe, VPWidenCastRecipe, VPInstruction>;
242237
243- template <typename Op0_t, typename Op1_t, typename Op2_t, unsigned Opcode,
244- bool Commutative, typename ... RecipeTys>
245- using TernaryRecipe_match = Recipe_match<std::tuple<Op0_t, Op1_t, Op2_t>,
246- Opcode, Commutative, RecipeTys...>;
247-
248- template <typename Op0_t, typename Op1_t, typename Op2_t, unsigned Opcode>
249- using TernaryVPInstruction_match =
250- TernaryRecipe_match<Op0_t, Op1_t, Op2_t, Opcode, /* Commutative*/ false ,
251- VPInstruction>;
252-
253238template <unsigned Opcode, typename Op0_t>
254239inline UnaryVPInstruction_match<Op0_t, Opcode>
255240m_VPInstruction (const Op0_t &Op0) {
@@ -262,12 +247,6 @@ m_VPInstruction(const Op0_t &Op0, const Op1_t &Op1) {
262247 return BinaryVPInstruction_match<Op0_t, Op1_t, Opcode>(Op0, Op1);
263248}
264249
265- template <unsigned Opcode, typename Op0_t, typename Op1_t, typename Op2_t>
266- inline TernaryVPInstruction_match<Op0_t, Op1_t, Op2_t, Opcode>
267- m_VPInstruction (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) {
268- return TernaryVPInstruction_match<Op0_t, Op1_t, Op2_t, Opcode>(Op0, Op1, Op2);
269- }
270-
271250template <typename Op0_t>
272251inline UnaryVPInstruction_match<Op0_t, VPInstruction::Not>
273252m_Not (const Op0_t &Op0) {
@@ -404,13 +383,6 @@ inline VPScalarIVSteps_match<Op0_t, Op1_t> m_ScalarIVSteps(const Op0_t &Op0,
404383 return VPScalarIVSteps_match<Op0_t, Op1_t>(Op0, Op1);
405384}
406385
407- template <typename Op0_t, typename Op1_t, typename Op2_t>
408- inline TernaryVPInstruction_match<Op0_t, Op1_t, Op2_t, Instruction::Select>
409- m_Select (const Op0_t &Cond, const Op1_t &LHS, const Op2_t &RHS) {
410- return m_VPInstruction<Instruction::Select, Op0_t, Op1_t, Op2_t>(Cond, LHS,
411- RHS);
412- }
413-
414386} // namespace VPlanPatternMatch
415387} // namespace llvm
416388
0 commit comments