code: def _verify_scatter_nd_inputs(data, indices, updates):
      mdim = int(indices.shape[0])
      assert mdim <= len(data.shape), (
          f"The first dimension of the indices ({mdim}) must be less than or equal to "
          f"the length of the shape of the output ({len(data.shape)})."
      )
      for i in range(len(indices.shape) - 1):
          if isinstance(indices.shape[i + 1], expr.Var) or isinstance(
              updates.shape[i], expr.Var
          ):
              continue
          assert indices.shape[i + 1] == updates.shape[i], (
              f"Dimension of indices[{i+1}] ({indices.shape[i+1]}) must equal dimension of "
              f"updates[{i}] ({updates.shape[i]})."
          )
      for i in range(mdim, len(data.shape)):
          data_ind = i - mdim + len(indices.shape) - 1
          if isinstance(
              updates.shape[data_ind], expr.Var
          ) or isinstance(data.shape[i], expr.Var):
              continue
          assert updates.shape[data_ind] == data.shape[i], (
              f"Dimension of updates[{data_ind}] ({updates.shape[data_ind]}) must equal dimension "
              f"of out_shape[{i}] ({data.shape[i]})."
          )
  
      assert (
          "int" in indices.dtype
      ), f"Indices must be a tensor of integers, but its elements are {indices.dtype}."
  
imports: from tvm import te, tir
  from tvm.tir import expr
label_desc: Use image node_id 1 for calling a global function with example usage: _verify_scatter_nd_inputs(data, indices, updates) without return types