code: def test_thread_axis():
      m = te.size_var("m")
      l = te.size_var("l")
      A = te.placeholder((m, l), name="A")
      B = te.compute((m, l), lambda i, j: A[i, j] + 3, name="B")
      s = te.create_schedule(B.op)
  
      s[B].set_scope("shared")
      num_thread = 16
      xo, xi = s[B].split(B.op.axis[0], 32)
      xi0, xi1 = s[B].split(xi, nparts=num_thread)
      s[B].bind(xi0, te.thread_axis("threadIdx.x"))
  
      bounds = tvm.te.schedule.InferBound(s)
      stmt = tvm.te.schedule.ScheduleOps(s, bounds)
  
      mod = tvm.IRModule.from_expr(
          tvm.tir.PrimFunc([], stmt).with_attr("global_symbol", "main")
      )
      mod = tvm.tir.transform.LoopPartition()(mod)
      stmt = tvm.tir.transform.Simplify()(mod)["main"]
  
      assert not any(
          collect_visit(
              stmt.body.body[0],
              lambda x: isinstance(x, tvm.tir.IfThenElse),
          )
      )
  
imports: import pytest
  import tvm
  import tvm.testing
  from tvm import te
  from tvm.ir.module import IRModule
  from tvm.script import tir
  import numpy
label_desc: Use image node_id 7 for calling a global function with example usage: test_thread_axis() without return types