How to match variadic input in pdll

Hi,
I want to match a sub-graph use pdll, but matched failed.
The IR to match is:

  %cst = arith.constant dense<5.000000e-01> : tensor<2x2x3x3x32x32xf32>
  %0 = linalg.init_tensor [2, 2, 98, 98, 32] : tensor<2x2x98x98x32xf32>
  %cst_0 = arith.constant 0.000000e+00 : f32
  %1 = linalg.fill ins(%cst_0 : f32) outs(%0 : tensor<2x2x98x98x32xf32>) -> tensor<2x2x98x98x32xf32>
  %cst_1 = arith.constant dense<0.000000e+00> : tensor<f32>
  %cst_2 = arith.constant 0.000000e+00 : f32
  %2 = tensor.pad %arg0 low[0, 0, 1, 1, 0] high[0, 0, 1, 1, 0] {
  ^bb0(%arg2: index, %arg3: index, %arg4: index, %arg5: index, %arg6: index):
    tensor.yield %cst_2 : f32
  } : tensor<2x2x98x98x32xf32> to tensor<2x2x100x100x32xf32>
  %3 = linalg.my_conv_2d  ins(%2, %cst : tensor<2x2x100x100x32xf32>, tensor<2x2x3x3x32x32xf32>) outs(%1 : tensor<2x2x98x98x32xf32>) -> tensor<2x2x98x98x32xf32>
return %3 : tensor<2x2x98x98x32xf32>

and linalg.my_conv_2d defined like:

def TnncConv2DOp : LinalgStructuredBase_Op<"tnnc_conv_2d", !listconcat([AttrSizedOperandSegments], /*extraInterfaces=*/[LinalgConvolutionOpInterface])> {
let arguments = (ins
       Variadic<AnyType>:$inputs,
       Variadic<AnyShaped>:$outputs);
let results = (outs Variadic<AnyRankedTensor>:$result_tensors);
...

$inputs’s size is 2, and $outputs’s size is 1.

I define pdll like:

  let weight = op<arith.constant>;
  let out = op<linalg.fill>;
  let pad = op<tensor.pad>;
  let conv = op<linalg.tnnc_conv_2d>(pad, weight, out);

but report failure match.
How should I write the pdll to match?