code: def test_call_packed_return_non_i32():
      # This call packed that return non i32 types
      expected_value = np.array([1.2, 1.4], dtype="float32")
  
      def packed_echo(value):
          return tvm.tir.call_intrin(
              value.dtype,
              tvm.ir.Op.get("tir.tvm_call_packed"),
              "testing.echo",
              value,
          )
  
      def build_tir():
          Ab = tvm.tir.decl_buffer((2,), "float32")
          ib = tvm.tir.ir_builder.create()
          Aptr = ib.buffer_ptr(Ab)
          # return f32
          # Aptr[0] = testing.echo(expected_value[0])
          Aptr[0] = packed_echo(
              tvm.tir.const(expected_value[0], "float32")
          )
          # return handle
          # let Aptr_var = testing.echo(Aptr) in Aptr_var[1] = expected_value[1]
          Aptr_var = ib.let(
              "Aptr_dup", packed_echo(Aptr.asobject().data)
          )
          ib.emit(
              tvm.tir.BufferStore(
                  Aptr, tvm.tir.const(expected_value[1], "float32"), [1]
              )
          )
  
          stmt = ib.get()
          return tvm.IRModule.from_expr(
              tvm.tir.PrimFunc([Ab], stmt).with_attr(
                  "global_symbol", "packed_test"
              )
          )
  
      mod = build_tir()
      f = tvm.build(mod, None, "llvm")
      a = tvm.nd.array(np.zeros(2, dtype="float32"))
      f(a)
      tvm.testing.assert_allclose(a.numpy(), expected_value)
  
imports: import tvm
  import tvm.testing
  from tvm import te
  from tvm.script import tir
  import numpy
  from tvm.tir.schedule.testing import assert_structural_equal_ignore_global_symbol
label_desc: Use image node_id 4 for calling a global function with example usage: test_call_packed_return_non_i32() and returns: tvm, tvm