code: def compacted_gpu_func(a: T.handle, c: T.handle) -> None:
      A = T.match_buffer(a, (16, 16), "float32")
      C = T.match_buffer(c, (16, 16), "float32")
      for i0 in T.thread_binding(0, 4, thread="blockIdx.x"):
          for i1 in T.thread_binding(0, 2, thread="threadIdx.x"):
              for i2 in T.thread_binding(0, 2, thread="vthread"):
                  with T.block():
                      T.reads(A[i0 * 4 + i1 * 2 + i2, 0:16])
                      T.writes(C[i0 * 4 + i1 * 2 + i2, 0:16])
                      B = T.alloc_buffer(
                          [1, 16], "float32", scope="local"
                      )
                      for j in range(0, 16):
                          with T.block():
                              T.reads(A[i0 * 4 + i1 * 2 + i2, j])
                              T.writes(B[0, j])
                              B[0, j] = A[i0 * 4 + i1 * 2 + i2, j] + 1.0
                      for j in range(0, 16):
                          with T.block():
                              T.reads(B[0, j])
                              T.writes(C[i0 * 4 + i1 * 2 + i2, j])
                              C[i0 * 4 + i1 * 2 + i2, j] = B[0, j] * 2.0
  
imports: import tvm
  import tvm.testing
  from tvm import te
  from tvm.script import tir
label_desc: Use image node_id 4 for calling a global function with example usage: compacted_gpu_func(a, c) without return types