code: def argmax(
      idx: T.Buffer((128, 128), "int32"),
      val: T.Buffer((128, 128), "float32"),
      argmax_v0: T.Buffer((128,), "int32"),
      argmax_v1: T.Buffer((128,), "float32"),
  ) -> None:
      for i0, i1 in T.grid(128, 128):
          with T.block("argmax"):
              i = T.axis.spatial(128, i0)
              k = T.axis.reduce(128, i1)
              T.reads(idx[i, k], val[i, k])
              T.writes(argmax_v0[i], argmax_v1[i])
              with T.init():
                  argmax_v0[i] = -1
                  argmax_v1[i] = T.min_value("float32")
              v_argmax_v0: T.int32 = T.Select(
                  argmax_v1[i] >= val[i, k], argmax_v0[i], idx[i, k]
              )
              v_argmax_v1: T.float32 = T.Select(
                  argmax_v1[i] >= val[i, k], argmax_v1[i], val[i, k]
              )
              argmax_v0[i] = v_argmax_v0
              argmax_v1[i] = v_argmax_v1
  
file_path: tvm/tests/python/meta_schedule/test_meta_schedule_schedule_rule_cross_thread_reduction.py
imports: import tvm
  from tvm import meta_schedule
  from tvm.meta_schedule.testing import te_workload
  from tvm.meta_schedule.testing.space_generation import check_sketches, generate_design_space
  from tvm.script import tir
  from tvm.target import Target
  from tvm.te import create_prim_func
label_desc: Use image node_id 4 for calling a global function with example usage: argmax(idx, val, argmax_v0, argmax_v1) without return types