code: def _pack_data(cfg, data, kernel):
      n, ic, ih, iw = get_const_tuple(data.shape)
      filters, cm, kh, kw = get_const_tuple(kernel.shape)
      oc = filters * cm
      ic_bn, oc_bn = cfg["tile_ic"].size[-1], cfg["tile_oc"].size[-1]
  
      ic_chunk = ic // ic_bn
      oc_chunk = oc // oc_bn
  
      data = te.compute(
          (n, ic_chunk, ih, iw, ic_bn),
          lambda bs, c, h, w, vc: data[bs, c * ic_bn + vc, h, w],
          name="data_vec",
      )
  
      kernel = te.compute(
          (oc_chunk, 1, kh, kw, 1, oc_bn),
          lambda occ, icc, k_h, k_w, icb, ocb: kernel[
              (occ * oc_bn + ocb) // cm,
              (occ * oc_bn + ocb) % cm,
              k_h,
              k_w,
          ],
          name="kernel_vec",
      )
  
      return data, kernel
  
file_path: tvm/python/tvm/topi/x86/depthwise_conv2d.py
imports: import tvm
  from tvm import autotvm, te
  from tvm.autotvm.task.space import OtherOptionEntity, SplitEntity
  from tvm.target.x86 import get_simd_32bit_lanes
  from ..nn.conv2d import unpack_NCHWc_to_nchw
  from ..nn.depthwise_conv2d import _get_workload, depthwise_conv2d_infer_layout
  from ..nn.pad import pad
  from ..nn.utils import get_pad_tuple
  from ..utils import get_const_tuple, traverse_inline
label_desc: Use image node_id 4 for calling a global function with example usage: _pack_data(cfg, data, kernel) and returns: data,  kernel