def METHOD_NAME():
    @tvm.script.ir_module
    class ModFromScript:
        @T.prim_func
        def main(A_param: T.handle, C_param: T.handle):
            A = T.match_buffer(A_param, (400,), "float32", strides=[1])
            C = T.match_buffer(C_param, (4,), "float32", strides=[1])
            T.func_attr({"from_legacy_te_schedule": True})
            threadIdx_x = T.env_thread("threadIdx.x")
            T.launch_thread(threadIdx_x, 1)
            for i in T.serial(0, 100):
                B = T.decl_buffer([4], "float32", scope="shared")
                with T.attr(B.data, "double_buffer_scope", 1):
                    for j in T.serial(0, 4):
                        B[j] = A[4 * i + j]
                for j in T.serial(0, 4):
                    C[j] = B[j] + 1.0
    mod = ModFromScript
    with tvm.transform.PassContext(config={"tir.InjectDoubleBuffer": {"split_loop": 2}}):
        mod = tvm.transform.Sequential(
            [
                tvm.tir.transform.StorageFlatten(64),
                tvm.tir.transform.InjectDoubleBuffer(),
                tvm.tir.transform.Simplify(),
            ]
        )(mod)
    stmt = mod["main"].body
    assert isinstance(stmt.body, tvm.tir.Allocate)
    assert list(stmt.body.extents) == [8]
    mod = tvm.tir.transform.ThreadSync("shared")(mod)
    f = mod["main"]
    count = [0]
    def count_sync(op):
        if isinstance(op, tvm.tir.Call) and op.op.same_as(tvm.ir.Op.get("tir.tvm_storage_sync")):
            count[0] += 1
    tvm.tir.stmt_functor.post_order_visit(f.body, count_sync)
    assert count[0] == 4