code: def neon_4x4_i8i8i32_impl(
      A: T.Buffer((4,), "int8", offset_factor=1),
      B: T.Buffer((4, 4), "int8", offset_factor=1),
      C: T.Buffer((4,), "int32", offset_factor=1),
  ) -> None:
      with T.block("root"):
          T.reads(C[0:4], A[0:4], B[0:4, 0:4])
          T.writes(C[0:4])
  
          A_int8 = A.vload([0], "int8x4")
          re_int32 = T.reinterpret(A_int8, dtype="int32")
          vec_ai32 = T.broadcast(re_int32, 2)
          vec_a = T.reinterpret(vec_ai32, dtype="int8x8")
  
          vec_b = B.vload([0, 0], dtype="int8x16")
  
          # TODO(masahi): Remove duplication when inlined function call is supported
          vec_b_low = T.vectorlow(vec_b, dtype="int8x8")
  
          multiply_low = T.call_llvm_pure_intrin(
              T.llvm_lookup_intrinsic_id(
                  "llvm.aarch64.neon.smull.v8i16"
              ),
              T.uint32(2),
              vec_a,
              vec_b_low,
              dtype="int16x8",
          )
  
          pairwise_reduction_low = T.call_llvm_pure_intrin(
              T.llvm_lookup_intrinsic_id(
                  "llvm.aarch64.neon.saddlp.v4i32.v8i16"
              ),
              T.uint32(1),
              multiply_low,
              dtype="int32x4",
          )
  
          vec_b_high = T.vectorhigh(vec_b, dtype="int8x8")
  
          multiply_high = T.call_llvm_pure_intrin(
              T.llvm_lookup_intrinsic_id(
                  "llvm.aarch64.neon.smull.v8i16"
              ),
              T.uint32(2),
              vec_a,
              vec_b_high,
              dtype="int16x8",
          )
  
          pairwise_reduction_high = T.call_llvm_pure_intrin(
              T.llvm_lookup_intrinsic_id(
                  "llvm.aarch64.neon.saddlp.v4i32.v8i16"
              ),
              T.uint32(1),
              multiply_high,
              dtype="int32x4",
          )
  
          C[T.ramp(T.int32(0), 1, 4)] += T.call_llvm_pure_intrin(
              T.llvm_lookup_intrinsic_id(
                  "llvm.aarch64.neon.addp.v4i32"
              ),
              T.uint32(2),
              pairwise_reduction_low,
              pairwise_reduction_high,
              dtype="int32x4",
          )
  
imports: from tvm.script import tir
  from ..None import TensorIntrin
  from .dot_product_common import DP4A_INTRIN
label_desc: Use image node_id 2 for calling a global function with example usage: neon_4x4_i8i8i32_impl(A, B, C) without return types