code: def test_sync_read_thread_id_independent_location():
      @T.prim_func
      def func(
          p0_arg: T.Buffer((1, 2, 1, 1), "float32"),
          p1: T.Buffer(2, "float32"),
      ) -> None:
          threadIdx_x = T.env_thread("threadIdx.x")
          blockIdx_x = T.env_thread("blockIdx.x")
          p0 = T.Buffer([2], dtype="float32", data=p0_arg.data)
          result_local = T.alloc_buffer(
              [1], dtype="float32", scope="local"
          )
          temp_shared = T.alloc_buffer(
              [1], dtype="float32", scope="shared"
          )
          T.launch_thread(blockIdx_x, 8)
          T.launch_thread(threadIdx_x, 4)
          result_local[0] = T.float32(0)
          if threadIdx_x < 1:
              temp_shared[0] = p0[0]
          result_local[0] = result_local[0] + temp_shared[0] * p1[0]
          if threadIdx_x < 1:
              temp_shared[0] = p0[1]
          result_local[0] = result_local[0] + temp_shared[0] * p1[1]
  
      mod = run_passes(func)
      assert "T.tvm_storage_sync" in str(mod)
  
file_path: tvm/tests/python/tir-transform/test_tir_transform_thread_sync.py
imports: import tvm
  import tvm.testing
  from tvm import te
  from tvm.script import tir
label_desc: Use image node_id 4 for calling a global function with example usage: test_sync_read_thread_id_independent_location() without return types