code: def test_call_packed_returning_void():
      """Allow codegen of PackedFunc calls returning void
  
      The LLVM codegen uses the CallNode's dtype to cast the return type
      of the PackedFunc into the appropriate LLVM output type.  However,
      there is no API type for `DataType::Void()`.  When the return type
      of a PackedFunc is void, the generated code should not attempt to
      read the return value.
  
      While `T.call_packed()` will produce a CallNode with an output
      dtype of "int32", the use of other return types is valid in TIR.
      This test case uses `T.Call` directly to allow an explicit dtype
      for the packed function call.
      """
  
      @T.prim_func
      def func():
          T.Call(
              "void",
              tvm.ir.Op.get("tir.tvm_call_packed"),
              ["dummy_function_name"],
          )
  
      # Error occurred during build, as part of
      # CodeGenCPU::MakeCallPackedLowered.
      built = tvm.build(func, target="llvm")
  
imports: import collections
  import ctypes
  import json
  import math
  import numpy
  import pytest
  import re
  import sys
  import tvm
  import tvm.testing
  from tvm import te
  from tvm.contrib import clang, utils
  from tvm.relay.backend import Runtime
  from tvm.script import tir, ir
  from tvm.target.codegen import llvm_get_intrinsic_name, llvm_lookup_intrinsic_id
label_desc: Use image node_id 39 for calling a global function with example usage: test_call_packed_returning_void() without return types