@@ -178,11 +178,6 @@ struct Recipe_match {
178
178
static_assert (std::tuple_size<Ops_t>::value == 2 &&
179
179
" constructor can only be used for binary matcher" );
180
180
}
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
- }
186
181
187
182
bool match (const VPValue *V) const {
188
183
auto *DefR = V->getDefiningRecipe ();
@@ -240,16 +235,6 @@ using AllBinaryRecipe_match =
240
235
BinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe,
241
236
VPReplicateRecipe, VPWidenCastRecipe, VPInstruction>;
242
237
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
-
253
238
template <unsigned Opcode, typename Op0_t>
254
239
inline UnaryVPInstruction_match<Op0_t, Opcode>
255
240
m_VPInstruction (const Op0_t &Op0) {
@@ -262,12 +247,6 @@ m_VPInstruction(const Op0_t &Op0, const Op1_t &Op1) {
262
247
return BinaryVPInstruction_match<Op0_t, Op1_t, Opcode>(Op0, Op1);
263
248
}
264
249
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
-
271
250
template <typename Op0_t>
272
251
inline UnaryVPInstruction_match<Op0_t, VPInstruction::Not>
273
252
m_Not (const Op0_t &Op0) {
@@ -404,13 +383,6 @@ inline VPScalarIVSteps_match<Op0_t, Op1_t> m_ScalarIVSteps(const Op0_t &Op0,
404
383
return VPScalarIVSteps_match<Op0_t, Op1_t>(Op0, Op1);
405
384
}
406
385
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
-
414
386
} // namespace VPlanPatternMatch
415
387
} // namespace llvm
416
388
0 commit comments