code: def test_bound_fusesplit1():
      m = te.var("m")
      l = te.var("l")
      split1 = te.var("s")
      A = te.placeholder((m, l), name="A")
      A1 = te.compute((m, l), lambda i, j: A[i, j], name="A1")
      A2 = te.compute((m, l), lambda i, j: A1[i, j] + 3, name="A2")
  
      s = te.create_schedule(A2.op)
      fused_axes = s[A2].fuse(A2.op.axis[0], A2.op.axis[1])
      xo, xi = s[A2].split(fused_axes, split1)
      s[A1].compute_at(s[A2], xo)
  
      bounds = tvm.te.schedule.InferBound(s)
      assert isinstance(bounds, tvm.container.Map)
      idxdiv = tvm.tir.indexdiv
      tvm.testing.assert_prim_expr_equal(
          bounds[A1.op.axis[0]].min, idxdiv(xo * split1, l)
      )
  
      expected_extent = (
          idxdiv((xo + 1) * split1 - 1, l) - idxdiv(xo * split1, l) + 1
      )
      for i in range(1, 6):
          for j in range(1, 6):
              for k in range(1, 6):
                  vars = tvm.runtime.convert(
                      {
                          split1: tvm.tir.const(i, "int32"),
                          l: tvm.tir.const(j, "int32"),
                          xo.var: tvm.tir.const(k, "int32"),
                      }
                  )
                  tvm.testing.assert_prim_expr_equal(
                      tvm.tir.stmt_functor.substitute(
                          bounds[A1.op.axis[0]].extent, vars
                      ),
                      tvm.tir.stmt_functor.substitute(
                          expected_extent, vars
                      ),
                  )
  
      tvm.testing.assert_prim_expr_equal(
          bounds[A1.op.axis[1]].extent, l
      )
  
imports: import tvm
  import tvm.testing
  from tvm import te
label_desc: Use image node_id 8 for calling a global function with example usage: test_bound_fusesplit1() without return types