code: def test_upscale(kernel_shape):
      output_shape = (1, 24, 24, 16)
      input_shape = (
          output_shape[0],
          output_shape[1] // 2 + 2 * (kernel_shape[0] - 1),
          output_shape[2] // 2 + 2 * (kernel_shape[1] - 1),
          output_shape[3],
      )
      A = te.placeholder(input_shape, name="A", dtype="int8")
      pool_a = topi.nn.pool2d(
          A,
          kernel_shape,
          (1, 1),
          (1, 1),
          (0, 0, 0, 0),
          "max",
          layout="NHWC",
      )
      pool_b = topi.nn.pool2d(
          pool_a,
          kernel_shape,
          (1, 1),
          (1, 1),
          (0, 0, 0, 0),
          "max",
          layout="NHWC",
      )
      upscale = te.compute(
          (1, 24, 24, 16),
          lambda nn, hh, ww, cc: pool_b[nn, hh // 2, ww // 2, cc],
      )
  
      sch = tvm.te.create_schedule([upscale.op])
      oi, ii = _tile_nd(sch, upscale, (1, 5, 5, 16))
      sch[pool_b].compute_at(sch[upscale], oi[-1])
      sch[pool_b].rolling_buffer()
      sch[pool_a].compute_at(sch[upscale], oi[-1])
      sch[pool_a].rolling_buffer()
  
      _verify_schedule(sch, [A], upscale)
  
imports: import numpy
  import pytest
  import tvm
  import tvm.script
  from tvm import te, topi
  from tvm.driver.build_module import get_binds
  from tvm.script import tir
label_desc: Use image node_id 7 for calling a global function with example usage: test_upscale(kernel_shape) without return types