code: def main(
      var_X: T.handle,
      var_W: T.handle,
      var_B: T.handle,
      var_bn_scale: T.handle,
      var_bn_offset: T.handle,
      var_compute: T.handle,
  ) -> None:
      X = T.match_buffer(var_X, [1, 512, 56, 56], dtype="float32")
      W = T.match_buffer(var_W, [512, 512, 3, 3], dtype="float32")
      B = T.match_buffer(var_B, [512, 1, 1], dtype="float32")
      bn_scale = T.match_buffer(
          var_bn_scale, [512, 1, 1], dtype="float32"
      )
      bn_offset = T.match_buffer(
          var_bn_offset, [512, 1, 1], dtype="float32"
      )
      compute = T.match_buffer(
          var_compute, [1, 512, 56, 56], dtype="float32"
      )
      pad_temp = T.alloc_buffer([1, 512, 58, 58], dtype="float32")
      compute_1 = T.alloc_buffer([1, 512, 56, 56], dtype="float32")
      bias_add = T.alloc_buffer([1, 512, 56, 56], dtype="float32")
      bn_mul = T.alloc_buffer([1, 512, 56, 56], dtype="float32")
      bn_add = T.alloc_buffer([1, 512, 56, 56], dtype="float32")
      for i0, i1, i2, i3 in T.grid(1, 512, 58, 58):
          with T.block("pad_temp"):
              i0_1, i1_1, i2_1, i3_1 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              pad_temp[i0_1, i1_1, i2_1, i3_1] = T.if_then_else(
                  i2_1 >= 1 and i2_1 < 57 and i3_1 >= 1 and i3_1 < 57,
                  X[i0_1, i1_1, i2_1 - 1, i3_1 - 1],
                  T.float32(0),
                  dtype="float32",
              )
      for i0, i1, i2, i3, i4, i5, i6 in T.grid(
          1, 512, 56, 56, 512, 3, 3
      ):
          with T.block("compute"):
              nn, ff, yy, xx, rc, ry, rx = T.axis.remap(
                  "SSSSRRR", [i0, i1, i2, i3, i4, i5, i6]
              )
              with T.init():
                  compute_1[nn, ff, yy, xx] = T.float32(0)
              compute_1[nn, ff, yy, xx] = (
                  compute_1[nn, ff, yy, xx]
                  + pad_temp[nn, rc, yy + ry, xx + rx]
                  * W[ff, rc, ry, rx]
              )
      for i0, i1, i2, i3 in T.grid(1, 512, 56, 56):
          with T.block("bias_add"):
              i, j, k, l = T.axis.remap("SSSS", [i0, i1, i2, i3])
              bias_add[i, j, k, l] = compute_1[i, j, k, l] + B[j, 0, 0]
      for i0, i1, i2, i3 in T.grid(1, 512, 56, 56):
          with T.block("bn_mul"):
              i, j, k, l = T.axis.remap("SSSS", [i0, i1, i2, i3])
              bn_mul[i, j, k, l] = (
                  bias_add[i, j, k, l] * bn_scale[j, 0, 0]
              )
      for i0, i1, i2, i3 in T.grid(1, 512, 56, 56):
          with T.block("bn_add"):
              i, j, k, l = T.axis.remap("SSSS", [i0, i1, i2, i3])
              bn_add[i, j, k, l] = (
                  bn_mul[i, j, k, l] + bn_offset[j, 0, 0]
              )
      for i0, i1, i2, i3 in T.grid(1, 512, 56, 56):
          with T.block("compute_1"):
              i0_2, i1_2, i2_2, i3_2 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              compute[i0_2, i1_2, i2_2, i3_2] = T.max(
                  bn_add[i0_2, i1_2, i2_2, i3_2], T.float32(0)
              )
  
imports: import pytest
  import tvm
  import tvm.testing
  from tvm import meta_schedule
  from tvm.ir.base import assert_structural_equal
  from tvm.meta_schedule.testing.space_generation import generate_design_space
  from tvm.script import tir
  from tvm.target import Target
  from tvm.tir import Schedule
label_desc: Use image node_id 1 for calling the Conv2DBiasBnReLU obj's underlying member method code with example usage: obj.main(var_X, var_W, var_B, var_bn_scale, var_bn_offset, var_compute) without return types