code: def decomposed_gemm() -> None:
      A = T.alloc_buffer([16, 16], "float32")
      B = T.alloc_buffer([16, 16], "float32")
      C = T.alloc_buffer([16, 16], "float32")
      for i, j in T.grid(4, 4):
          for ii, jj in T.grid(4, 4):
              with T.block("init"):
                  vi = T.axis.S(16, i * 4 + ii)
                  vj = T.axis.S(16, j * 4 + jj)
                  T.reads([])
                  T.writes(C[vi, vj])
                  C[vi, vj] = 0
          for k, ii, jj in T.grid(16, 4, 4):
              with T.block("update"):
                  vi = T.axis.S(16, i * 4 + ii)
                  vj = T.axis.S(16, j * 4 + jj)
                  vk = T.axis.R(16, k)
                  T.reads(C[vi, vj], A[vi, vk], B[vj, vk])
                  T.writes(C[vi, vj])
                  C[vi, vj] += A[vi, vk] * B[vj, vk]
  
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 9 for calling a global function with example usage: decomposed_gemm() without return types