code: def test_tuple_output():
      mod = tvm.relay.parse(
          """
  #[version = "0.0.5"]
  def @test_fused_add(%x: Tensor[(5, 7), float32]) { (%x, %x) }
  
  def @main(%a: Tensor[(5, 7), float32]) -> (Tensor[(5, 7), float32], Tensor[(5, 7), float32]) {
    %0 = (%a,) /* ty=(Tensor[(5, 7), float32],) */;
    call_lowered(@test_fused_add, %0) /* ty=(Tensor[(5, 7), float32], Tensor[(5, 7), float32]) */
  }
          """,
      )
  
      # fmt: off
      @T.prim_func
      def func(a: T.handle, output0: T.handle, output1: T.handle) -> None:
          # function attr dict
          T.func_attr({"global_symbol": "test_mod___tvm_main__", "runner_function": True, "target": T.target({"kind":"llvm", "tag":"", "keys":["cpu"]}), "input_vars": [a], "output_vars": [output0, output1], "devices": []})
          a_buffer = T.match_buffer(a, [5, 7], dtype="float32", align=16)
          output0_buffer = T.match_buffer(output0, [5, 7], dtype="float32", align=16)
          output1_buffer = T.match_buffer(output1, [5, 7], dtype="float32", align=16)
          # body
          T.evaluate(T.tvm_call_cpacked("test_fused_add", a_buffer.data, output0_buffer.data, output1_buffer.data, T.reinterpret(T.uint64(0), dtype="handle"), dtype="int32"))
      # fmt: on
  
      _assert_lowered_main(mod, func, CallType.CPacked)
  
imports: import numpy
  import pytest
  import tvm
  import tvm.testing
  from tvm.ir import assert_structural_equal
  from tvm.relay.backend.aot import AOTLowerMain, CallType
  from tvm.script import tir
label_desc: Use image node_id 11 for calling a global function with example usage: test_tuple_output() without return types