@@ -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