def METHOD_NAME():
    @tvm.script.ir_module
    class Before:
        @R.function
        def ife(cond: R.Tensor((), "bool"), x: R.Tensor) -> R.Tensor:
            R.func_attr({"global_symbol": "ife"})
            if cond:
                w = R.call_packed("test.vm.add", x, x, sinfo_args=(R.Tensor))
            else:
                w = R.call_packed("test.vm.mul", x, x, sinfo_args=(R.Tensor))
            return w
    @tvm.script.ir_module
    class Expected:
        @T.prim_func
        def __vmtir__ife(ctx_ptr: T.handle, r: T.handle, c: T.handle, f: T.handle):
            T.func_attr({"global_symbol": "__vmtir__ife"})
            if T.cast(
                T.tvm_call_packed("vm.builtin.read_if_cond", T.anylist_getitem(r, T.int32(0))),
                "bool",
            ):
                T.anylist_setitem_call_packed(
                    r,
                    T.int32(4),
                    "test.vm.add",
                    T.anylist_getitem(r, T.int32(1)),
                    T.anylist_getitem(r, T.int32(1)),
                )
                T.anylist_setitem_call_packed(
                    r, T.int32(3), "vm.builtin.copy", T.anylist_getitem(r, T.int32(4))
                )
            else:
                T.anylist_setitem_call_packed(
                    r,
                    T.int32(5),
                    "test.vm.mul",
                    T.anylist_getitem(r, T.int32(1)),
                    T.anylist_getitem(r, T.int32(1)),
                )
                T.anylist_setitem_call_packed(
                    r, T.int32(3), "vm.builtin.copy", T.anylist_getitem(r, T.int32(5))
                )
            T.anylist_setitem_call_packed(
                r, T.int32(2), "vm.builtin.copy", T.anylist_getitem(r, T.int32(3))
            )
    before = Before
    expected = Expected
    after = get_tir_mod(before)
    assert_structural_equal(expected, after)