code: def gemm_mma_m8n8k4_row_col_fp64pf64fp64(
      a: T.handle, b: T.handle, c: T.handle
  ):
      T.func_attr(
          {"global_symbol": "default_function", "tir.noalias": True}
      )
      A = T.match_buffer(a, [8, 4], dtype="float64")
      B = T.match_buffer(b, [8, 4], dtype="float64")
      C = T.match_buffer(c, [8, 8], dtype="float64")
      brow = T.env_thread("blockIdx.y")
      bcol = T.env_thread("blockIdx.x")
      tx = T.env_thread("threadIdx.x")
      T.launch_thread(brow, 1)
      T.launch_thread(bcol, 1)
      T.launch_thread(tx, 32)
      MultiA = T.decl_buffer([1], "float64", scope="local")
      MultiB = T.decl_buffer([1], "float64", scope="local")
      Accum = T.decl_buffer([2], "float64", scope="local")
      for i in range(2):
          Accum[i] = T.float64(0)
  
      MultiA[0] = A[(tx % 32) // 4, (tx % 32) % 4]
      MultiB[0] = B[(tx % 32) // 4, (tx % 32) % 4]
      T.evaluate(
          T.ptx_mma(
              "m8n8k4",
              "row",
              "col",
              "fp64",
              "fp64",
              "fp64",
              MultiA.data,
              0,
              MultiB.data,
              0,
              Accum.data,
              0,
              False,
              dtype="float64",
          )
      )
      for mma_accum_c_id in range(2):
          C[(tx % 32) // 4, (tx % 32) % 4 * 2 + mma_accum_c_id] = Accum[
              mma_accum_c_id
          ]
  
imports: import sys
  import pytest
  import tvm
  from tvm.script import tir
  import numpy
  import tvm.testing
label_desc: Use image node_id 1 for calling a global function with example usage: gemm_mma_m8n8k4_row_col_fp64pf64fp64(a, b, c) without return types