code: def func() -> None:
      A = T.alloc_buffer((128, 128), "float32")
      B = T.alloc_buffer((128, 128), "float32")
      C = T.alloc_buffer((128, 128), "float32")
      D = T.alloc_buffer((128, 128), "float32")
      with T.block():
          # Need add read/write region manually to avoid triggering block access region detector
          T.reads([B[0, 0], C[0:16, 0:16], A[4:12, 4:12]])
          T.writes([A[0:12, 0:12]])
          for i, j in T.grid(8, 8):
              A[i, j] = B[0, 0] + C[0, 0]
          for i, j in T.grid(2, 2):
              with T.block():
                  vi, vj = T.axis.remap("SS", [i, j])
                  T.reads(
                      [
                          A[
                              vi * 4 + 4 : vi * 4 + 8,
                              vj * 4 + 4 : vj * 4 + 8,
                          ],
                          C[12:16, 12:16],
                      ]
                  )
                  T.writes(
                      [
                          A[
                              vi * 4 + 4 : vi * 4 + 8,
                              vj * 4 + 4 : vj * 4 + 8,
                          ]
                      ]
                  )
                  for i, j in T.grid(4, 4):
                      A[vi * 4 + 4 + i, vj * 4 + 4 + j] += C[
                          i + 12, j + 12
                      ]
          T.evaluate(D.data)
  
imports: import pytest
  import tvm
  from tvm import tir
  from tvm.script import tir
  from tvm.ir import Range
label_desc: Use image node_id 1 for calling a global function with example usage: func() without return types