code: def dot_product_16x4_u8i8i32_desc(
      A: T.Buffer((4,), "uint8", offset_factor=1),
      B: T.Buffer((16, 4), "int8", offset_factor=1),
      C: T.Buffer((16,), "int32", offset_factor=1),
  ) -> None:
      with T.block("root"):
          T.reads(C[0:16], A[0:4], B[0:16, 0:4])
          T.writes(C[0:16])
          for i in T.serial(0, 16):
              for k in T.serial(0, 4):
                  with T.block("update"):
                      vi, vk = T.axis.remap("SR", [i, k])
                      C[vi] = C[vi] + T.cast(A[vk], "int32") * T.cast(
                          B[vi, vk], "int32"
                      )
  
imports: from tvm.script import tir
  from ..None import TensorIntrin
label_desc: Use image node_id 1 for calling a global function with example usage: dot_product_16x4_u8i8i32_desc(A, B, C) without return types