code: def test_annotate_unannotate_loop():
      sch = tir.Schedule(mod=matmul_relu, debug_mask="all")
      matmul = sch.get_block("matmul")
      relu = sch.get_block("relu")
      sch.annotate(sch.get_loops(matmul)[0], "test1", "aaa")
      sch.annotate(sch.get_loops(matmul)[1], "test2", 612)
      sch.annotate(sch.get_loops(matmul)[1], "test3", ["aa", 1])
      sch.annotate(
          sch.get_loops(matmul)[0], "test4", {"arr": [0, 0], "key": 3}
      )
      assert_structural_equal_ignore_global_symbol(
          sch.mod["main"], matmul_relu_ann1
      )
      verify_trace_roundtrip(sch=sch, mod=matmul_relu)
      sch.unannotate(sch.get_loops(matmul)[0], "test1")
      sch.unannotate(sch.get_loops(matmul)[1], "test2")
      sch.unannotate(sch.get_loops(matmul)[1], "test3")
      sch.unannotate(sch.get_loops(matmul)[0], "test4")
      verify_trace_roundtrip(sch=sch, mod=matmul_relu)
  
imports: import sys
  import pytest
  import tvm
  import tvm.testing
  from tvm import tir
  from tvm.ir import IRModule
  from tvm.script import tir
  from tvm.tir.schedule.testing import assert_structural_equal_ignore_global_symbol, verify_trace_roundtrip
label_desc: Use image node_id 18 for calling a global function with example usage: test_annotate_unannotate_loop() without return types