code: def get_matmul_packed(
      m, n, k, lhs_type="int8", rhs_dtype="int8", acc_dtype="int32"
  ):
      X = te.placeholder((m, k), name="X", dtype=lhs_type)
      W = te.placeholder((n, k), name="W", dtype=rhs_dtype)
  
      ak = te.reduce_axis((0, k), name="k")
      matmul = te.compute(
          (m, n),
          lambda i, j: te.sum(
              X[i, ak].astype(acc_dtype) * W[j, ak].astype(acc_dtype),
              axis=ak,
          ),
          name="compute",
      )
      return te.create_prim_func([X, W, matmul])
  
imports: import math
  import sys
  from typing import List
  import pytest
  import tvm
  import tvm.testing
  from tvm import te
  from tvm.ir.module import IRModule
  from tvm._ffi import register_func
  from tvm.error import TVMError
  from tvm.meta_schedule import TuneContext
  from tvm.meta_schedule.schedule_rule import PyScheduleRule
  from tvm.meta_schedule.space_generator import PostOrderApply
  from tvm.meta_schedule.utils import derived_object
  from tvm.script import tir
  from tvm.target import Target
  from tvm.tir.schedule import BlockRV, Schedule
label_desc: Use image node_id 1 for calling a global function with example usage: get_matmul_packed(m, n, k, lhs_type, rhs_dtype, acc_dtype) and returns: te