def METHOD_NAME():
    def __check_list(tvm_array, py_list):
        for ti, li in zip(tvm_array, py_list):
            if ti.value != li:
                return False
        return True
    ib = tvm.tir.ir_builder.create()
    n = te.size_var("n")
    cp = te.thread_axis((0, 1), "cop")
    A = ib.allocate("float32", 128, name="A", scope="global.cache")
    with ib.for_range(0, n, name="i") as i:
        with ib.for_range(0, n, name="i") as j:
            with ib.new_scope():
                ib.scope_attr(cp, "coproc_scope", 1)
                A[i] = 1.0
            with ib.new_scope():
                ib.scope_attr(cp, "coproc_scope", 2)
                A[i] = 1.0
    with ib.new_scope():
        ib.scope_attr(cp, "coproc_scope", 3)
        A[0] = 0.0
    stmt = ib.get()
    mod = tvm.IRModule.from_expr(tvm.tir.PrimFunc([n], stmt))
    stmt = tvm.tir.transform.CoProcSync()(mod)["main"].body
    slist = tvm.tir.stmt_list(stmt[0].body)
    push_st = slist[2]
    slist = tvm.tir.stmt_list(slist[-1])
    pop_st = slist[0].body[0]
    assert push_st.value.op.same_as(tvm.ir.Op.get("tir.cop.coproc_dep_push"))
    assert __check_list(push_st.value.args, [2, 3])
    assert pop_st.value.op.same_as(tvm.ir.Op.get("tir.cop.coproc_dep_pop"))
    assert __check_list(pop_st.value.args, [2, 3])