code: def main(
      p0: T.Buffer((1, 56, 56, 64), "float32"),
      p1: T.Buffer((6, 6, 64, 64), "float32"),
      p2: T.Buffer((1, 1, 1, 64), "float32"),
      p3: T.Buffer((1, 56, 56, 64), "float32"),
      T_relu: T.Buffer((1, 56, 56, 64), "float32"),
  ) -> None:
      # function attr dict
      T.func_attr(
          {
              "global_symbol": "main",
              "tir.noalias": True,
              "layout_free_buffers": [1],
          }
      )
      # body
      # with T.block("root")
      data_pad = T.alloc_buffer([1, 58, 58, 64], dtype="float32")
      input_tile = T.alloc_buffer([6, 6, 196, 64], dtype="float32")
      B = T.alloc_buffer([6, 6], dtype="float32")
      data_pack = T.alloc_buffer([6, 6, 196, 64], dtype="float32")
      bgemm = T.alloc_buffer([6, 6, 196, 64], dtype="float32")
      A = T.alloc_buffer([6, 4], dtype="float32")
      inverse = T.alloc_buffer([4, 4, 196, 64], dtype="float32")
      conv2d_winograd = T.alloc_buffer([1, 56, 56, 64], dtype="float32")
      T_add = T.alloc_buffer([1, 56, 56, 64], dtype="float32")
      T_add_1 = T.alloc_buffer([1, 56, 56, 64], dtype="float32")
      for i0, i1, i2, i3 in T.grid(1, 58, 58, 64):
          with T.block("data_pad"):
              i0_1, i1_1, i2_1, i3_1 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              T.reads(p0[i0_1, i1_1 - 1, i2_1 - 1, i3_1])
              T.writes(data_pad[i0_1, i1_1, i2_1, i3_1])
              T.block_attr({"schedule_rule": "None"})
              data_pad[i0_1, i1_1, i2_1, i3_1] = T.if_then_else(
                  1 <= i1_1 and i1_1 < 57 and 1 <= i2_1 and i2_1 < 57,
                  p0[i0_1, i1_1 - 1, i2_1 - 1, i3_1],
                  T.float32(0),
                  dtype="float32",
              )
      for i0, i1, i2, i3 in T.grid(6, 6, 196, 64):
          with T.block("input_tile"):
              eps, nu, p, ci = T.axis.remap("SSSS", [i0, i1, i2, i3])
              T.reads(
                  data_pad[
                      p // 196,
                      p % 196 // 14 * 4 + eps,
                      p % 14 * 4 + nu,
                      ci,
                  ]
              )
              T.writes(input_tile[eps, nu, p, ci])
              T.block_attr({"schedule_rule": "None"})
              input_tile[eps, nu, p, ci] = data_pad[
                  p // 196, p % 196 // 14 * 4 + eps, p % 14 * 4 + nu, ci
              ]
      for i0, i1 in T.grid(6, 6):
          with T.block("B"):
              i, j = T.axis.remap("SS", [i0, i1])
              T.reads()
              T.writes(B[i, j])
              T.block_attr(
                  {
                      "const_matrix": True,
                      "schedule_rule": "meta_schedule.compute_inline",
                  }
              )
              B[i, j] = T.Select(
                  i % 6 == 5 and j % 6 == 5,
                  T.float32(1),
                  T.Select(
                      i % 6 == 5 and j % 6 == 4,
                      T.float32(0),
                      T.Select(
                          i % 6 == 5 and j % 6 == 3,
                          T.float32(0),
                          T.Select(
                              i % 6 == 5 and j % 6 == 2,
                              T.float32(0),
                              T.Select(
                                  i % 6 == 5 and j % 6 == 1,
                                  T.float32(0),
                                  T.Select(
                                      i % 6 == 5 and j % 6 == 0,
                                      T.float32(0),
                                      T.Select(
                                          i % 6 == 4 and j % 6 == 5,
                                          T.float32(1.5),
                                          T.Select(
                                              i % 6 == 4 and j % 6 == 4,
                                              T.float32(1),
                                              T.Select(
                                                  i % 6 == 4
                                                  and j % 6 == 3,
                                                  T.float32(1),
                                                  T.Select(
                                                      i % 6 == 4
                                                      and j % 6 == 2,
                                                      T.float32(1),
                                                      T.Select(
                                                          i % 6 == 4
                                                          and j % 6
                                                          == 1,
                                                          T.float32(1),
                                                          T.Select(
                                                              i % 6 == 4
                                                              and j % 6
                                                              == 0,
                                                              T.float32(
                                                                  1
                                                              ),
                                                              T.Select(
                                                                  i % 6
                                                                  == 3
                                                                  and j
                                                                  % 6
                                                                  == 5,
                                                                  T.float32(
                                                                      -2
                                                                  ),
                                                                  T.Select(
                                                                      i
                                                                      % 6
                                                                      == 3
                                                                      and j
                                                                      % 6
                                                                      == 4,
                                                                      T.float32(
                                                                          -0.5
                                                                      ),
                                                                      T.Select(
                                                                          i
                                                                          % 6
                                                                          == 3
                                                                          and j
                                                                          % 6
                                                                          == 3,
                                                                          T.float32(
                                                                              2
                                                                          ),
                                                                          T.Select(
                                                                              i
                                                                              % 6
                                                                              == 3
                                                                              and j
                                                                              % 6
                                                                              == 2,
                                                                              T.float32(
                                                                                  2.5
                                                                              ),
                                                                              T.Select(
                                                                                  i
                                                                                  % 6
                                                                                  == 3
                                                                                  and j
                                                                                  % 6
                                                                                  == 1,
                                                                                  T.float32(
                                                                                      0.5
                                                                                  ),
                                                                                  T.Select(
                                                                                      i
                                                                                      % 6
                                                                                      == 3
                                                                                      and j
                                                                                      % 6
                                                                                      == 0,
                                                                                      T.float32(
                                                                                          1.5
                                                                                      ),
                                                                                      T.Select(
                                                                                          i
                                                                                          % 6
                                                                                          == 2
                                                                                          and j
                                                                                          % 6
                                                                                          == 5,
                                                                                          T.float32(
                                                                                              -1.5
                                                                                          ),
                                                                                          T.Select(
                                                                                              i
                                                                                              % 6
                                                                                              == 2
                                                                                              and j
                                                                                              % 6
                                                                                              == 4,
                                                                                              T.float32(
                                                                                                  -1
                                                                                              ),
                                                                                              T.Select(
                                                                                                  i
                                                                                                  % 6
                                                                                                  == 2
                                                                                                  and j
                                                                                                  % 6
                                                                                                  == 3,
                                                                                                  T.float32(
                                                                                                      -1
                                                                                                  ),
                                                                                                  T.Select(
                                                                                                      i
                                                                                                      % 6
                                                                                                      == 2
                                                                                                      and j
                                                                                                      % 6
                                                                                                      == 2,
                                                                                                      T.float32(
                                                                                                          0.5
                                                                                                      ),
                                                                                                      T.Select(
                                                                                                          i
                                                                                                          % 6
                                                                                                          == 2
                                                                                                          and j
                                                                                                          % 6
                                                                                                          == 1,
                                                                                                          T.float32(
                                                                                                              -2.5
                                                                                                          ),
                                                                                                          T.Select(
                                                                                                              i
                                                                                                              % 6
                                                                                                              == 2
                                                                                                              and j
                                                                                                              % 6
                                                                                                              == 0,
                                                                                                              T.float32(
                                                                                                                  -2
                                                                                                              ),
                                                                                                              T.Select(
                                                                                                                  i
                                                                                                                  % 6
                                                                                                                  == 1
                                                                                                                  and j
                                                                                                                  % 6
                                                                                                                  == 5,
                                                                                                                  T.float32(
                                                                                                                      1
                                                                                                                  ),
                                                                                                                  T.Select(
                                                                                                                      i
                                                                                                                      % 6
                                                                                                                      == 1
                                                                                                                      and j
                                                                                                                      % 6
                                                                                                                      == 4,
                                                                                                                      T.float32(
                                                                                                                          0.5
                                                                                                                      ),
                                                                                                                      T.Select(
                                                                                                                          i
                                                                                                                          % 6
                                                                                                                          == 1
                                                                                                                          and j
                                                                                                                          % 6
                                                                                                                          == 3,
                                                                                                                          T.float32(
                                                                                                                              -2
                                                                                                                          ),
                                                                                                                          T.Select(
                                                                                                                              i
                                                                                                                              % 6
                                                                                                                              == 1
                                                                                                                              and j
                                                                                                                              % 6
                                                                                                                              == 2,
                                                                                                                              T.float32(
                                                                                                                                  -1
                                                                                                                              ),
                                                                                                                              T.Select(
                                                                                                                                  i
                                                                                                                                  % 6
                                                                                                                                  == 1
                                                                                                                                  and j
                                                                                                                                  % 6
                                                                                                                                  == 1,
                                                                                                                                  T.float32(
                                                                                                                                      1
                                                                                                                                  ),
                                                                                                                                  T.Select(
                                                                                                                                      i
                                                                                                                                      % 6
                                                                                                                                      == 1
                                                                                                                                      and j
                                                                                                                                      % 6
                                                                                                                                      == 0,
                                                                                                                                      T.float32(
                                                                                                                                          -1.5
                                                                                                                                      ),
                                                                                                                                      T.Select(
                                                                                                                                          i
                                                                                                                                          % 6
                                                                                                                                          == 0
                                                                                                                                          and j
                                                                                                                                          % 6
                                                                                                                                          == 5,
                                                                                                                                          T.float32(
                                                                                                                                              0
                                                                                                                                          ),
                                                                                                                                          T.Select(
                                                                                                                                              i
                                                                                                                                              % 6
                                                                                                                                              == 0
                                                                                                                                              and j
                                                                                                                                              % 6
                                                                                                                                              == 4,
                                                                                                                                              T.float32(
                                                                                                                                                  0
                                                                                                                                              ),
                                                                                                                                              T.Select(
                                                                                                                                                  i
                                                                                                                                                  % 6
                                                                                                                                                  == 0
                                                                                                                                                  and j
                                                                                                                                                  % 6
                                                                                                                                                  == 3,
                                                                                                                                                  T.float32(
                                                                                                                                                      0
                                                                                                                                                  ),
                                                                                                                                                  T.Select(
                                                                                                                                                      i
                                                                                                                                                      % 6
                                                                                                                                                      == 0
                                                                                                                                                      and j
                                                                                                                                                      % 6
                                                                                                                                                      == 2,
                                                                                                                                                      T.float32(
                                                                                                                                                          0
                                                                                                                                                      ),
                                                                                                                                                      T.Select(
                                                                                                                                                          i
                                                                                                                                                          % 6
                                                                                                                                                          == 0
                                                                                                                                                          and j
                                                                                                                                                          % 6
                                                                                                                                                          == 1,
                                                                                                                                                          T.float32(
                                                                                                                                                              0
                                                                                                                                                          ),
                                                                                                                                                          T.Select(
                                                                                                                                                              i
                                                                                                                                                              % 6
                                                                                                                                                              == 0
                                                                                                                                                              and j
                                                                                                                                                              % 6
                                                                                                                                                              == 0,
                                                                                                                                                              T.float32(
                                                                                                                                                                  1
                                                                                                                                                              ),
                                                                                                                                                              T.float32(
                                                                                                                                                                  0
                                                                                                                                                              ),
                                                                                                                                                          ),
                                                                                                                                                      ),
                                                                                                                                                  ),
                                                                                                                                              ),
                                                                                                                                          ),
                                                                                                                                      ),
                                                                                                                                  ),
                                                                                                                              ),
                                                                                                                          ),
                                                                                                                      ),
                                                                                                                  ),
                                                                                                              ),
                                                                                                          ),
                                                                                                      ),
                                                                                                  ),
                                                                                              ),
                                                                                          ),
                                                                                      ),
                                                                                  ),
                                                                              ),
                                                                          ),
                                                                      ),
                                                                  ),
                                                              ),
                                                          ),
                                                      ),
                                                  ),
                                              ),
                                          ),
                                      ),
                                  ),
                              ),
                          ),
                      ),
                  ),
              )
      for i0, i1, i2, i3, i4, i5 in T.grid(6, 6, 196, 64, 6, 6):
          with T.block("data_pack"):
              eps, nu, p, ci, r_a, r_b = T.axis.remap(
                  "SSSSRR", [i0, i1, i2, i3, i4, i5]
              )
              T.reads(
                  input_tile[r_a, r_b, p, ci],
                  B[
                      T.min(r_a, r_b) : T.max(r_a, r_b) + 1,
                      T.min(eps, nu) : T.max(eps, nu) + 1,
                  ],
              )
              T.writes(data_pack[eps, nu, p, ci])
              T.block_attr(
                  {
                      "auto_scheduler_simplify_const_tensor_indices": [
                          "eps",
                          "nu",
                          "r_a",
                          "r_b",
                      ],
                      "schedule_rule": "meta_schedule.winograd_data_pack.cuda",
                  }
              )
              with T.init():
                  data_pack[eps, nu, p, ci] = T.float32(0)
              data_pack[eps, nu, p, ci] = (
                  data_pack[eps, nu, p, ci]
                  + input_tile[r_a, r_b, p, ci]
                  * B[r_a, eps]
                  * B[r_b, nu]
              )
      for i0, i1, i2, i3, i4 in T.grid(6, 6, 196, 64, 64):
          with T.block("bgemm"):
              eps, nu, p, co, ci = T.axis.remap(
                  "SSSSR", [i0, i1, i2, i3, i4]
              )
              T.reads(data_pack[eps, nu, p, ci], p1[eps, nu, co, ci])
              T.writes(bgemm[eps, nu, p, co])
              T.block_attr({"layout_free_placeholders": []})
              with T.init():
                  bgemm[eps, nu, p, co] = T.float32(0)
              bgemm[eps, nu, p, co] = (
                  bgemm[eps, nu, p, co]
                  + data_pack[eps, nu, p, ci] * p1[eps, nu, co, ci]
              )
      for i0, i1 in T.grid(6, 4):
          with T.block("A"):
              i, j = T.axis.remap("SS", [i0, i1])
              T.reads()
              T.writes(A[i, j])
              T.block_attr(
                  {
                      "const_matrix": True,
                      "schedule_rule": "meta_schedule.compute_inline",
                  }
              )
              A[i, j] = T.Select(
                  i % 6 == 5 and j % 4 == 3,
                  T.float32(1),
                  T.Select(
                      i % 6 == 5 and j % 4 == 2,
                      T.float32(0),
                      T.Select(
                          i % 6 == 5 and j % 4 == 1,
                          T.float32(0),
                          T.Select(
                              i % 6 == 5 and j % 4 == 0,
                              T.float32(0),
                              T.Select(
                                  i % 6 == 4 and j % 4 == 3,
                                  T.float32(-8),
                                  T.Select(
                                      i % 6 == 4 and j % 4 == 2,
                                      T.float32(4),
                                      T.Select(
                                          i % 6 == 4 and j % 4 == 1,
                                          T.float32(-2),
                                          T.Select(
                                              i % 6 == 4 and j % 4 == 0,
                                              T.float32(1),
                                              T.Select(
                                                  i % 6 == 3
                                                  and j % 4 == 3,
                                                  T.float32(0.125),
                                                  T.Select(
                                                      i % 6 == 3
                                                      and j % 4 == 2,
                                                      T.float32(0.25),
                                                      T.Select(
                                                          i % 6 == 3
                                                          and j % 4
                                                          == 1,
                                                          T.float32(
                                                              0.5
                                                          ),
                                                          T.Select(
                                                              i % 6 == 3
                                                              and j % 4
                                                              == 0,
                                                              T.float32(
                                                                  1
                                                              ),
                                                              T.Select(
                                                                  i % 6
                                                                  == 2
                                                                  and j
                                                                  % 4
                                                                  == 3,
                                                                  T.float32(
                                                                      1
                                                                  ),
                                                                  T.Select(
                                                                      i
                                                                      % 6
                                                                      == 2
                                                                      and j
                                                                      % 4
                                                                      == 2,
                                                                      T.float32(
                                                                          1
                                                                      ),
                                                                      T.Select(
                                                                          i
                                                                          % 6
                                                                          == 2
                                                                          and j
                                                                          % 4
                                                                          == 1,
                                                                          T.float32(
                                                                              1
                                                                          ),
                                                                          T.Select(
                                                                              i
                                                                              % 6
                                                                              == 2
                                                                              and j
                                                                              % 4
                                                                              == 0,
                                                                              T.float32(
                                                                                  1
                                                                              ),
                                                                              T.Select(
                                                                                  i
                                                                                  % 6
                                                                                  == 1
                                                                                  and j
                                                                                  % 4
                                                                                  == 3,
                                                                                  T.float32(
                                                                                      -1
                                                                                  ),
                                                                                  T.Select(
                                                                                      i
                                                                                      % 6
                                                                                      == 1
                                                                                      and j
                                                                                      % 4
                                                                                      == 2,
                                                                                      T.float32(
                                                                                          1
                                                                                      ),
                                                                                      T.Select(
                                                                                          i
                                                                                          % 6
                                                                                          == 1
                                                                                          and j
                                                                                          % 4
                                                                                          == 1,
                                                                                          T.float32(
                                                                                              -1
                                                                                          ),
                                                                                          T.Select(
                                                                                              i
                                                                                              % 6
                                                                                              == 1
                                                                                              and j
                                                                                              % 4
                                                                                              == 0,
                                                                                              T.float32(
                                                                                                  1
                                                                                              ),
                                                                                              T.Select(
                                                                                                  i
                                                                                                  % 6
                                                                                                  == 0
                                                                                                  and j
                                                                                                  % 4
                                                                                                  == 3,
                                                                                                  T.float32(
                                                                                                      0
                                                                                                  ),
                                                                                                  T.Select(
                                                                                                      i
                                                                                                      % 6
                                                                                                      == 0
                                                                                                      and j
                                                                                                      % 4
                                                                                                      == 2,
                                                                                                      T.float32(
                                                                                                          0
                                                                                                      ),
                                                                                                      T.Select(
                                                                                                          i
                                                                                                          % 6
                                                                                                          == 0
                                                                                                          and j
                                                                                                          % 4
                                                                                                          == 1,
                                                                                                          T.float32(
                                                                                                              0
                                                                                                          ),
                                                                                                          T.Select(
                                                                                                              i
                                                                                                              % 6
                                                                                                              == 0
                                                                                                              and j
                                                                                                              % 4
                                                                                                              == 0,
                                                                                                              T.float32(
                                                                                                                  1
                                                                                                              ),
                                                                                                              T.float32(
                                                                                                                  0
                                                                                                              ),
                                                                                                          ),
                                                                                                      ),
                                                                                                  ),
                                                                                              ),
                                                                                          ),
                                                                                      ),
                                                                                  ),
                                                                              ),
                                                                          ),
                                                                      ),
                                                                  ),
                                                              ),
                                                          ),
                                                      ),
                                                  ),
                                              ),
                                          ),
                                      ),
                                  ),
                              ),
                          ),
                      ),
                  ),
              )
      for i0, i1, i2, i3, i4, i5 in T.grid(4, 4, 196, 64, 6, 6):
          with T.block("inverse"):
              vh, vw, p, co, r_a, r_b = T.axis.remap(
                  "SSSSRR", [i0, i1, i2, i3, i4, i5]
              )
              T.reads(
                  bgemm[r_a, r_b, p, co],
                  A[
                      T.min(r_a, r_b) : T.max(r_a, r_b) + 1,
                      T.min(vh, vw) : T.max(vh, vw) + 1,
                  ],
              )
              T.writes(inverse[vh, vw, p, co])
              T.block_attr(
                  {
                      "auto_scheduler_simplify_const_tensor_indices": [
                          "vh",
                          "vw",
                          "r_a",
                          "r_b",
                      ],
                      "schedule_rule": "meta_schedule.winograd_inverse.cuda",
                  }
              )
              with T.init():
                  inverse[vh, vw, p, co] = T.float32(0)
              inverse[vh, vw, p, co] = (
                  inverse[vh, vw, p, co]
                  + bgemm[r_a, r_b, p, co] * A[r_a, vh] * A[r_b, vw]
              )
      for i0, i1, i2, i3 in T.grid(1, 56, 56, 64):
          with T.block("conv2d_winograd"):
              n, h, w, co = T.axis.remap("SSSS", [i0, i1, i2, i3])
              T.reads(
                  inverse[
                      h % 4, w % 4, n * 196 + h // 4 * 14 + w // 4, co
                  ]
              )
              T.writes(conv2d_winograd[n, h, w, co])
              conv2d_winograd[n, h, w, co] = inverse[
                  h % 4, w % 4, n * 196 + h // 4 * 14 + w // 4, co
              ]
      for i0, i1, i2, i3 in T.grid(1, 56, 56, 64):
          with T.block("T_add"):
              ax0, ax1, ax2, ax3 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              T.reads(
                  conv2d_winograd[ax0, ax1, ax2, ax3],
                  p2[ax0, 0, 0, ax3],
              )
              T.writes(T_add[ax0, ax1, ax2, ax3])
              T_add[ax0, ax1, ax2, ax3] = (
                  conv2d_winograd[ax0, ax1, ax2, ax3]
                  + p2[ax0, 0, 0, ax3]
              )
      for i0, i1, i2, i3 in T.grid(1, 56, 56, 64):
          with T.block("T_add_1"):
              ax0, ax1, ax2, ax3 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              T.reads(T_add[ax0, ax1, ax2, ax3], p3[ax0, ax1, ax2, ax3])
              T.writes(T_add_1[ax0, ax1, ax2, ax3])
              T_add_1[ax0, ax1, ax2, ax3] = (
                  T_add[ax0, ax1, ax2, ax3] + p3[ax0, ax1, ax2, ax3]
              )
      for i0, i1, i2, i3 in T.grid(1, 56, 56, 64):
          with T.block("T_relu"):
              ax0, ax1, ax2, ax3 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              T.reads(T_add_1[ax0, ax1, ax2, ax3])
              T.writes(T_relu[ax0, ax1, ax2, ax3])
              T_relu[ax0, ax1, ax2, ax3] = T.max(
                  T_add_1[ax0, ax1, ax2, ax3], T.float32(0)
              )
  
imports: import pytest
  import tvm
  import tvm.meta_schedule
  import tvm.testing
  from tvm.script import tir
  from tvm.target import Target
  from tvm.target.codegen import llvm_lookup_intrinsic_id
  from tvm.tir import Schedule, floordiv, floormod
  from tvm.tir.tensor_intrin.cuda import *
  from tvm.tir.tensor_intrin.x86 import VNNI_DOT_16x4_INTRIN
label_desc: Use image node_id 1 for calling the Conv2dWinogradAddResidualRelu obj's underlying member method code with example usage: obj.main(p0, p1, p2, p3, T_relu) without return types