code: def conv2d_nhwc(
      Input: T.Buffer((1, 224, 224, 3), "float32"),
      Weight: T.Buffer((7, 7, 3, 64), "float32"),
      Conv2d_nhwc: T.Buffer((1, 112, 112, 64), "float32"),
  ) -> None:
      PadInput = T.alloc_buffer([1, 230, 230, 3], dtype="float32")
      for i0, i1, i2, i3 in T.grid(1, 230, 230, 3):
          with T.block("PadInput"):
              i0_1, i1_1, i2_1, i3_1 = T.axis.remap(
                  "SSSS", [i0, i1, i2, i3]
              )
              PadInput[i0_1, i1_1, i2_1, i3_1] = T.if_then_else(
                  (
                      (((i1_1 >= 3) and (i1_1 < 227)) and (i2_1 >= 3))
                      and (i2_1 < 227)
                  ),
                  Input[i0_1, (i1_1 - 3), (i2_1 - 3), i3_1],
                  T.float32(0),
                  dtype="float32",
              )
      for i0, i1, i2, i3, i4, i5, i6 in T.grid(
          1, 112, 112, 64, 7, 7, 3
      ):
          with T.block("conv2d_nhwc"):
              n, h, w, co, rh, rw, rc = T.axis.remap(
                  "SSSSRRR", [i0, i1, i2, i3, i4, i5, i6]
              )
              with T.init():
                  Conv2d_nhwc[n, h, w, co] = T.float32(0)
              Conv2d_nhwc[n, h, w, co] = Conv2d_nhwc[n, h, w, co] + (
                  PadInput[
                      n,
                      ((h * 2) + rh),
                      ((w * 2) + rw),
                      ((T.floordiv(co, 64) * 3) + rc),
                  ]
                  * Weight[rh, rw, rc, co]
              )
  
imports: import pytest
  import tvm
  import tvm.testing
  from tvm import tir
  from tvm.script import tir
  from tvm.tir.schedule.schedule import ScheduleError
  from tvm.tir.schedule.testing import assert_structural_equal_ignore_global_symbol, verify_trace_roundtrip
label_desc: Use image node_id 3 for calling a global function with example usage: conv2d_nhwc(Input, Weight, Conv2d_nhwc) without return types