code: def decomposed_gemm(
      A: T.Buffer((16, 16), "float32"),
      B: T.Buffer((16, 16), "float32"),
      C: T.Buffer((16, 16), "float32"),
  ):
      local = 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)
                  local[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)
                  local[vi, vj] += A[vi, vk] * B[vj, vk]
          for ii, jj in T.grid(4, 4):
              with T.block("C"):
                  vi = T.axis.S(16, i * 4 + ii)
                  vj = T.axis.S(16, j * 4 + jj)
                  C[vi, vj] = local[vi, vj]
  
imports: import sys
  import pytest
  import tvm
  import tvm.testing
  from tvm import tir
  from tvm.script import tir
  from tvm.tir.schedule.testing import verify_trace_roundtrip, assert_structural_equal_ignore_global_symbol
label_desc: Use image node_id 19 for calling a global function with example usage: decomposed_gemm(A, B, C) without return types